我有一个运行多个副本的无头服务。当尝试使用轮询验证客户端负载平衡时,我看到所有请求最终都在同一副本中。 客户端设置如下:
conn, err := grpc.Dial(
address,
grpc.WithInsecure(),
grpc.WithDefaultServiceConfig(`{"loadBalancingPolicy":"round_robin"}`),)
我已经验证了服务中的多个端点。我还验证了服务可以解析为这些多个IP,但是以某种方式它确实仅连接到该列表中的第一个pod。
MAX_CONNECTION_AGE
在服务器端设置为30秒,以确保在规模扩大的情况下客户端偶尔重新连接。
我已经关注了无数篇文章,介绍了如何进行设置,但实际上是行不通的。我想念什么?
答案 0 :(得分:1)
关键是要明确地使用dns:///
作为目标的前缀。尽管事实表明它是文档中的默认设置。