TCP 监听是什么
TCP 监听是四层入口:负载均衡只按连接转发,不解析应用协议,因此数据库、消息队列、自研 TCP 服务都能接入。配置重点集中在四件事——前端端口与后端端口的映射、调度算法、健康检查方式、空闲超时,上线后多数稳定性问题都能在这四项里找到原因。
基本信息
| 必配项 | 前端端口、协议 TCP、后端端口、调度算法、健康检查 |
|---|---|
| 常见算法 | 加权轮询 wrr、加权最小连接数 wlc |
| 健康检查 | TCP 探测(连接成功即健康)或指定独立检查端口 |
| 空闲超时 | 长连接业务(数据库代理、MQTT)需要相应调大 |
| 协议支持 | 任意基于 TCP 的协议,负载均衡不感知应用层内容 |
| 后端要求 | 服务必须监听内网网卡地址,不能只监听 127.0.0.1 |
典型使用场景
- 为多台数据库代理或中间件提供统一连接地址
- 长连接推送服务需要保持连接不被入口提前断开
- 非 HTTP 的自研协议服务需要横向扩容
- 内网微服务之间调用需要稳定的服务地址与故障转移
- 老系统只支持四层代理,无法改造为 HTTP 接入
先在后端手工验证
先在后端手工验证
nc -zv -w 3 10.0.1.10 8080 # 端口是否可连
ss -lntp | grep 8080 # 确认监听的是 0.0.0.0 或内网地址
curl -sv http://10.0.1.10:8080/ | head # 若同时提供 HTTP,可进一步验证
# 从另一台同网段实例重复一次,排除安全组只放行单机的问题关键参数与调优方向
| 参数 | 说明 | 常见问题 |
|---|---|---|
| 前端端口 | 对外提供服务端口 | 与其他监听端口冲突导致无法保存 |
| 后端端口 | 转发到的目标端口,可与前端不同 | 后端实际端口与配置不一致 |
| 调度算法 | 决定新连接分配到哪台后端 | 长连接场景下轮询不均衡 |
| 健康检查 | 判断后端是否在线 | 检查端口未放通导致成员被摘 |
| 空闲超时 | 长期无数据连接被断开的时限 | 长连接被提前断开 |
后端服务必须监听 0.0.0.0 或内网网卡地址;只监听 127.0.0.1 时健康检查会一直失败,也会让负载均衡无法转发流量。
四层转发不解析协议内容,因此入口无法做基于应用的限流或内容改写;需要这类能力时应评估改用七层监听或在后端实现。