You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GCP TCP负载均衡实现两个TCP连接路由到同一后端主机

问题根因

你遇到的调度不一致、连接断开问题本质是两个原因导致的:

  1. GCP 外部TCP负载均衡默认的会话亲和性规则是基于**5元组(源IP、源端口、目的IP、目的端口、传输层协议)**匹配,你连接端口A和端口B的目的端口不同,默认规则下会被判定为两个独立会话,自然会调度到不同的后端实例
  2. 若会话超过负载均衡默认的超时时间无流量、或者MIG实例被自动扩缩容回收、健康检查失败被摘除,已建立的连接就会被主动终止
解决方案
  • 方案1:修改后端服务会话亲和性规则(最适配业务场景的方案)

    在你绑定TCP LB的backend service配置中,将会话亲和性从默认的NONE修改为CLIENT_IP:
    该模式下调度逻辑只匹配源IP、目的IP、传输层协议三个维度,忽略源端口、目的端口,只要是同一个客户端IP发起的请求,无论访问端口A还是端口B,都会被调度到同一个MIG实例上。
    配套调整项:

    • 按需调整会话亲和性超时时间,默认值为30秒,最长支持配置为24小时,覆盖你的业务会话最长存续周期即可
    • 若你的测试客户端共享NAT出口IP,该方案可能会导致后端调度不均衡,可结合实际业务场景评估适配性
  • 方案2:统一多端口的后端服务配置

    确保端口A、端口B的流量都通过同一个backend service转发,不要为两个端口分别创建独立的转发规则、后端服务:
    你可以在backend service的端口映射配置中同时添加A、B两个端口的映射规则,再在TCP LB的转发规则中放开两个端口的访问权限,确保两个端口的流量都执行同一套调度逻辑。

  • 方案3:测试场景临时适配

    如果是临时测试场景不需要线上配置调整,可以选择两种临时方案:

    1. 测试期间关闭MIG自动扩缩容,避免实例被自动回收导致连接中断
    2. 测试时直接绑定MIG单个实例的公网IP,绕开LB调度逻辑,完成单实例功能验证后再验证LB接入场景
连接断开问题额外排查项
  • 检查backend service的TCP会话超时配置,默认值为600秒(10分钟),如果你的长连接超过该时长没有报文传输,会被LB主动断开,可按需调整timeoutSec参数
  • 检查MIG的健康检查配置,若健康检查失败实例会被从backend service中摘除,已有连接会被强制切断,确保两个端口对应的健康检查逻辑配置正确

内容的提问来源于stack exchange,提问作者toootooo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:09:04