微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Kestrel .net core 3.1 中设置 max_connection_age_grace_ms

如何解决如何在 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 举报,一经查实,本站将立刻删除。