.Net Core gRPC入門實踐(webapi集成gRPC客戶端)

1、新建Asp.Net Core WebApi項目

2、在webapi項目中集成gRPC環境

2.1  添加nuget依賴包:Google.Protobuf   、  Grpc.Net.Client  、 Grpc.Tools

       webapi中多添加一個【可選】: Grpc.AspNetCore (用於在startup.cs配置IOC)。

2.2  新建Protos文件夾。

2.3  將gRPC服務端的.proto文件複製到當前項目Protos文件夾下。

2.4  修改項目文件。 也可以直接重新生成項目,會自動添加。

  <ItemGroup>
              <Protobuf Include="Protos\demo.proto" GrpcServices="Client" />
         </ItemGroup>


       2.5  重新生成項目

3、調用第三方gRPC服務

3.1  手動創建對象來調用,用起來麻煩,適合初學者學習。

  // 1、建立連接
using (GrpcChannel grpcChannel = GrpcChannel.ForAddress("https://localhost:5001"))
{
    // 2、客戶端創建
    var demo = new Demo.DemoClient(grpcChannel);
    //// 3、開始調用
    var response = demo.DemoMethod(new RequestParam()
    {
         Id = 1
    });
    Console.WriteLine(JsonConvert.SerializeObject(response));
}

3.2  在startup.cs中配置依賴注入來調用【webapi / MVC項目】

      多個服務實例的情況下無法使用負載均衡算法來動態設置。可以配合nginx的grpc負載均衡策略來使用,伸縮性也不好。

        a) 配置startup.cs

public void ConfigureServices(IServiceCollection services)
{
    // 1、GRPC客戶端
     services.AddGrpcClient<Demo.DemoClient>(options => {
          options.Address = new Uri("https://localhost:5001");
     });
     services.AddGrpcClient<Greeter.GreeterClient>(options => {
          options.Address = new Uri("https://localhost:5001");
     });
     services.AddControllers();
}

       b) 調用

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章