对于客户端通过负载均衡器发出的每个请求,负载均衡器都会维护两个 TCP 连接。一个连接与客户端,另一个连接与后端实例。GCE LoadBalancer 正在与我的后端实例创建大量 TCP 连接,我该如何控制?
GCP 文档说
“从负载均衡器到您的实例的流量具有 130.211.0.0/22 范围内的 IP 地址。查看负载平衡实例上的日志时,您将看不到原始客户端的源地址。相反,您将看到此范围内的源地址。”
这意味着理想情况下 LB 可以与后端实例打开最多 2 pow 10 * 2 pow 16 = 67108864 个 TCP 连接。这里 2 pow 10 表示 IP 范围,2 pow 16 表示每个 IP 的端口范围。
我如何控制 GCE LB 与我的后端实例创建最多 N 个 TCP 连接?
答案1
正如 Ilya Zakreuski 所链接的,这个问题已经在 Stack Overflow 上被提出,Ilya 的回答如下:
目前,HTTP 负载均衡器不公开连接限制控制。后端服务连接限制为每个后端 64K。实际上,您可以预期每个后端最多有 2-3k 个活动连接,具体取决于负载模式。
虽然我不会太担心 2-3k 个连接,但如果您确实需要避免同时有那么多连接,请考虑实施动态健康检查,并在连接数超过定义的阈值时返回不健康状态。不健康状态会阻止后端实例获取新连接,但您需要弄清楚如何处理溢出负载,也许可以通过自动扩展后端服务来实现。