grpc asp.net core 集成時一些配置的說明

      一  什麼是grpc                                                                                                                                     json

              google出了一款分佈式通信框架:grpc。我想這也不是新的東西了,在13年的一個項目中,用在了數據層和業務端之間的通信上,當時並無以爲怎麼樣,由於wcf很輕鬆的也能夠能夠實現哪些功能。可是想在想想,確實在某些場合,grpc比wcf要更好一點。第一就是比wcf要輕量級的多,第二,跨平臺,他出了一款協議Protocol Buffers,來定義接口,而後使用工具去生成不一樣 的語言代碼。而wcf咱們也知道,跨平臺使用soap協議,基於http,壞處就是慢。而基於tcp或者命名管道,又不跨平臺。因此grpc很是適合某些特殊的場景中使用。尤爲是他的消息交換是json,比wcf的xml輕量級不少。框架

      二  配置說明                                                                                                                                           tcp

               vs2017簡單的安裝幾個nuget包:分佈式

                                                                                                                              image

                爲項目添加proto文件,查看工程文件工具

          

  <ItemGroup>
    <Protobuf Include="proto\order.proto"
              CompileOutputs="false" />
  </ItemGroup>

        CompileOutputs:這個配置屬性意思就是不要編譯進程序集google


  <ItemGroup>
    <Protobuf Include="**/*.proto" OutputDir="%(RelativePath)" CompileOutputs="false"  />
  </ItemGroup>
OutputDir :這個屬性意思就很明顯了,輸出目錄
 <ItemGroup>
    <Protobuf Include="**/*.proto" OutputDir="%(RelativePath)"
              CompileOutputs="false" GrpcServices="None" />
    <Protobuf Update="**/hello/*.proto;**/bye/*.proto" GrpcServices="Both" />
  </ItemGroup>
<Protobuf Update="**/hello/*.proto;**/bye/*.proto" GrpcServices="Both" /> 告訴插件只有這個節點配置的proto才進行更新,這是針對大一點的項目,不想讓它生成整個項目的proto
GrpcServices是指生成客戶端,仍是服務端,仍是兩部分都生成。
 <ItemGroup>
    <Protobuf Include="**/*.proto" OutputDir="%(RelativeDir)"
              CompileOutputs="false" GrpcServices="None" />
  </ItemGroup>

GrpcServices="None" 只生成message不生成servicesspa

  <ItemGroup>
    <Protobuf Include="../**/*.proto" ProtoRoot=".."
              OutputDir="%(RelativeDir)" CompileOutputs="false" />
  </ItemGroup>
ProtoRoot 指定生成的代碼導出的地方。
相關文章
相關標籤/搜索