首页 > 解决方案 > so_reuseport下如何连接特定的grpc服务器进程

问题描述

我有多个 GRPC 服务器,都使用 GRPC linux so_reuseport选项绑定到同一个端口。

这很好用,但对于健康检查,我想在所有服务器上逐一迭代并识别不健康的服务器。

因为它们都具有相同的 ip 和端口,我无法控制它将连接到谁。

任何解决方法?

标签: pythonlinuxgrpc-pythonso-reuseport

解决方案


目前这是不可能的,即使端口共享服务器之间的分配也是由内核控制的。负载平衡是内核级别的。gRPC 无法控制哪个请求登陆哪个服务器。

解决这个问题的一个常见方法是打开一个侧端口进行健康检查。或者您可以更改为使用其他负载平衡(请参阅文档)技术。

PS。在gRPC 健康检查中,您可以为每个服务指定不同名称的健康状态。


推荐阅读