如何解决如何在 Kestrel .net core 3.1 中设置 max_connection_age_grace_ms
我们正在尝试在 grpc 中实现客户端负载平衡。我有用 .NET Core 3.1 编写的服务器和用 JS 编写的客户端,两个组件部署在 GKE 中。
在客户端中,配置没问题,我测试并成功执行负载平衡任务,但我注意到它无法识别服务器的新副本。
我在文档中读到 gRPC 服务器需要发送“GOAWAY”信号以便让客户端查找副本(通过 DNS.lookup)我在 .NET 2.0 上的 GRPC.Core 中找到了一个示例,即工作,他们用几个通道选项定义了服务器,特别是 grpc.max_connection_age_ms 和 grpc.max_connection_age_grace_ms
/ Work around to make round_robin LB policy re-resolve backends periodically and thus pick up newly deployed replicas of the service.
// see https://github.com/grpc/proposal/blob/master/A9-server-side-conn-mgt.md
var serverArgs = new[] {new ChannelOption("grpc.max_connection_age_ms",5000),new ChannelOption("grpc.max_connection_age_grace_ms",3000)};
Server server = new Server(serverArgs)
{
Services = { Greeter.BindService(new GreeterImpl()) },Ports = { new ServerPort("0.0.0.0",Port,ServerCredentials.Insecure) },};
server.Start();
Console.WriteLine("Started server on port " + Port);
// wait forever
server.ShutdownTask.Wait();`
我们需要做同样的事情,但在 Krestel 中,我已经阅读了文档并且我一直试图找到一个例子,但不是运气。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。