UDP 监听怎么工作
UDP 没有连接语义,负载均衡只能按会话维持转发:同一个客户端源地址在会话周期内会被固定送到同一台后端,会话超时后才可能重新分配。因此 UDP 业务的后端要么是无状态的,要么自己共享会话数据,否则会出现「前半段请求和后半段请求落在不同机器上」的现象。DNS、音视频、游戏类业务常用 UDP 监听,具体行为以所用产品文档为准。
基本信息
| 会话行为 | 同一客户端源地址在会话期内固定后端 |
|---|---|
| 调度算法 | 通常仅支持加权轮询类算法 |
| 健康检查 | 部分产品支持 UDP 检查,或借助云监控自定义探测 |
| 设计建议 | 后端保持无状态,或自行共享会话数据 |
典型使用场景
- 自建 DNS 服务对外提供解析,按客户端源地址维持短时会话
- 音视频与游戏长连接业务,用 UDP 降低重传带来的延迟
- 日志与监控数据采集使用 UDP 上报,需要多后端分摊压力
- 把 UDP 服务收敛到负载均衡后面,便于统一做后端摘除与扩容
UDP 端口探测
UDP 端口探测
nc -u -z -w 3 10.0.1.20 53
dig @10.0.1.20 example.com +short
# UDP 探测不易判定,优先用应用层命令验证(如 dig、iperf3 -u)UDP 与 TCP 监听差异
| 维度 | UDP 监听 | TCP 监听 |
|---|---|---|
| 连接语义 | 无连接,按会话转发 | 有连接,按连接转发 |
| 后端要求 | 需无状态或共享会话 | 天然支持有状态会话 |
| 探测方式 | 应用层命令更可靠 | 端口探测即可 |
| 摘除后端 | 存量会话到期才生效 | 新连接立即生效 |
调整权重或摘除后端后,存量 UDP 会话可能仍指向旧后端,直到会话超时。
配置与排障要点
UDP 监听的配置项比 TCP 少,风险更多落在会话行为上。上线前先确认会话超时是否大于业务侧请求间隔,超时设得太短会让同一客户端在不同请求间被分到不同后端;扩容或缩容时也要接受一段时间的会话迁移期。排障时不要沿用 TCP 的思路,端口探测对 UDP 常常没有反馈,改用应用层命令验证更可靠;若后端依赖客户端源地址做策略,还要先确认转发是否改写了源地址。