扩展gRPC支持consul服务发现和Polly策略

gRPC由于需要用工具生成代码实现,可开发性不是很高,在扩展这方面不是很友好

最近研究了下,进行了扩展,不需要额外的工具生成,直接使用默认Grpc.Tools生成的代理类即可

相关源码在文章底部

客户端目标:

能配置consul地址和服务名称,在调用client时能正确请求到真实的服务地址

在调用方法时,能使用Polly策略重试,超时,和熔断

查看gRPC生成的代码,可以看到Client实例化有有两个构造方法,以测试为例

/// <summary>Creates a new client for Greeter</summary> /// <param>The channel to use to make remote calls.</param> public GreeterClient(grpc::ChannelBase channel) : base(channel) { } /// <summary>Creates a new client for Greeter that uses a custom <c>CallInvoker</c>.</summary> /// <param>The callInvoker to use to make remote calls.</param> public GreeterClient(grpc::CallInvoker callInvoker) : base(callInvoker) { }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysswp.html