我有多个 GRPC 服务器,都使用 GRPC linux 绑定(bind)到同一端口 so_reuseport选项。
这很好,但对于健康检查,我想在所有服务器上进行迭代,一台一台地识别不健康的服务器。
因为它们都有相同的ip和端口,所以我无法控制它会连接到谁。
有什么解决方法吗?
最佳答案
目前这是不可能的,即使端口共享服务器之间的分配也由内核控制。负载平衡是内核级的。 gRPC 无法控制哪个请求登陆哪个服务器。
解决这个问题的一种常见方法是打开一个侧端口进行健康检查。或者您可以更改为使用其他负载平衡(请参阅 doc)技术。
附言。在 gRPC health checking ,您可以为每个服务指定不同名称的健康状态。
关于python - so_reuseport下如何连接到特定的grpc服务器进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543210/