反向代理后的端口数量限制

104 天前
zhouhuab  zhouhuab

WS 服务放在 NGINX 后面,根据 4 元组原理( localhost + [1-2**16), localhost+<listen port>),后端一个 listen 端口支持的最大活跃连接数目就是可用端口总数,大家是怎么突破这个限制(在只有一台服务器的前提下),多加一些 listen 端口,还是说规避反向代理?一些负载均衡服务是不是也有同样的问题?假设后端是 MQTT 服务,活跃连接很多,虽然消息频率很低

3220 次点击
所在节点   程序员  程序员
35 条回复
sujin190
sujin190
103 天前
@zhouhuab 都这设备数量级了,还用啥 7 层代理吧,4 层都用不起,直接 dns 均衡足够了,否则太浪费资源了,且不说内存使用量大增加了不少,光是心跳就要增加不小的 cpu 使用率了,而且还要考虑重启更新或者网络中断啥的集中重连需要预留资源的消耗也更多,也就是如果你平时就内存 cpu 带宽全满那重启就有可能没有足够资源起得来了
zhouhuab
zhouhuab
103 天前
@sujin190 还不是为了省钱,设备是多,可都是白嫖,就图个引流,所以尽量减少投入。我们现在用的是 UDP ,跑在 16core/32G 的服务器上,每月 30T 的 UDP 流量(心跳服务),目前相当拥挤。
Livid
Livid
103 天前
@Leon6868 谢谢,那个用 AI 回复的账号已经被彻底 ban 。
sujin190
sujin190
103 天前
@zhouhuab 那就更不要 7 层代理了,按理说心跳至少可以到 2 分钟,微信之前还发过文研究过 4 到 5 分钟也撑得住,估计给个 3 分钟估计可以,ws 的心跳包好像只有 3 字节吧,算上 ip tcp 头,100 万设备全天在线一个月估计也就 1T 多流量,你这咋高这么多。。
zhouhuab
zhouhuab
103 天前
@sujin190 现在是 UDP ,NAT 端口也就预留 30 秒左右,所以不可能用分钟心跳给 UDP
soul11201
soul11201
102 天前
连接池
humbass
humbass
102 天前
太 TM 扯了,当年阿里云牛逼的工程师一个挂载点最多 10 万个 MQTT 客户端,还是 TCP 形式的,WS 占资源更多,顶多 50000 万个。做到百万这个份上,是不是客户端要优化下,连接之前轮询下当前可用服务器,然后再连接对应的挂载点
zhouhuab
zhouhuab
101 天前
很好奇,emqx 的集群是怎么做的
zhouhuab
zhouhuab
101 天前
@sujin190 可以联系你,聊聊吗?
sujin190
sujin190
101 天前
@zhouhuab MTM2OTAzOTcyMA== 可以加 q
zhouhuab
zhouhuab
101 天前
@sujin190 我给你发推吧,我老了,不再用 q 了,:)
zhouhuab
zhouhuab
101 天前
@zhouhuab 看到你邮件了,我给你发邮件
zhouhuab
zhouhuab
101 天前
@sujin190 看到你邮件了,我给你发邮件
Shir0k0
Shir0k0
99 天前
@humbass 50000 万个?五万万个?
humbass
humbass
99 天前
@Shir0k0 明显是写错了啊,5 万

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1088368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX