跳到主要内容

端口负载均衡方案

一句话版:身份端口像"工位号",端口号天生有数量上限(约 6w)。端口负载均衡就是开更多"入口"来共用这些工位,让同一套工位能接待更多客人、也更不容易被挤爆。


一、先理解"身份端口"是怎么回事

每条隧道接入集群,都要落在某个服务端实例上,而一个实例 = 一个端口号。这个端口号就是隧道在集群里的身份

  • 端口号从 2022 左右开始编号,但端口总数天然有上限(0–65535),去掉系统占用后,单集群大约能容纳 6w 个身份端口
  • 每个身份端口(实例)内部还能同时承载多条隧道并发("× N 条隧道");
  • 所以单集群的理论容量是:约 6w 个身份端口 × 每个端口内 N 条隧道

换句话说:限制集群容量的第一道墙,不是机器性能,而是"端口号不够用了"。

二、为什么还要做"端口负载均衡"

理论上 6w 个身份端口很多,但实际使用中还会碰到:

  • 单入口压力:所有访问挤在一个公共入口上,入口端口本身也会饱和;
  • 单点风险:入口就一个,挂了全断;
  • 不够用:业务大了,6w 身份端口 × N 条隧道仍然会触顶。

三、方案:把容量摊到多个入口上

思路是别让所有身份端口挤在一个入口后面,而是把它们分摊到多个入口、多台服务器:

入口 1 ──> L4 负载均衡 ──> 一批身份端口(服务端实例)
入口 2 ──> L4 负载均衡 ──> 另一批身份端口
入口 3 ──> ……
  • 统一对外:用户看到的还是"一个产品",实际由多个入口共同服务;
  • 按表分流:谁连哪个入口,由数据端的映射表和负载均衡的动态发现共同决定,保证找得到人;
  • 坏了自动换:某入口或某批端口出问题,流量自动切到其它入口。

于是容量从"一个入口扛 6w × N"变成 "多个入口加起来扛 6w × N",入口数量可继续加,整体承载与可用性同步提升。

四、这套方案适合谁

  • 端口直连型业务多(数据库、SSH、游戏、自研 TCP)的规模用户;
  • 对"身份端口数量"敏感、可能触顶的集群。

五、端口上限还能不能更高?

能。端口负载均衡解决的是"摊开扛",但 6w 这个天花板本身还在——想真正突破身份端口数量上限,需要换个身份载体,答案见 DNS 组件方案

六、小结

记住内网云:一个入口扛 6w×N,多个入口就扛多个 6w×N;端口不够是数量墙,摊开扛是第一步。