.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  修改项目文件。 也可以直接重新生成项目,会自动添加。

 
             
         

.Net Core gRPC入门实践(webapi集成gRPC客户端)_第1张图片
       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(options => {
          options.Address = new Uri("https://localhost:5001");
     });
     services.AddGrpcClient(options => {
          options.Address = new Uri("https://localhost:5001");
     });
     services.AddControllers();
}

       b) 调用

.Net Core gRPC入门实践(webapi集成gRPC客户端)_第2张图片

 

 

你可能感兴趣的:(gRPC,微服务,.net,Core)