使用 websockets 和持久的 TCP 连接,如果负载平衡器在后端处理大量服务器,它们将如何应对 64k 端口限制?需要。关于为可以的应用程序设置基础设施的一些想法。可能有 10 万个连接。
您的问题似乎假设 SNAT(又名 NAPT)转换负载平衡器。这里有一些关于解决 64k 临时端口问题的想法。我的经验是使用 F5 Networks 的 BIG-IP 产品(因此链接指向他们的站点),但其他供应商的概念是相同的:
不要SNAT。如果不转换源端口,则没有 64k 限制。要关闭 SNAT,您需要将负载均衡器的内部地址设置为内部服务器上的路由(通常是默认路由)。
使用 SNAT 池。这使得负载均衡器可以使用内部 IP 地址池进行转换。例如,SNAT 池中的两个 IP 地址将为您提供 128k 临时端口,因此 128k 并发 TCP 连接。
更高级的方法:
我应该指出,Websockets 对传统的 HTTP 负载平衡器来说是一个特殊的挑战,因为连接的寿命要长得多——人们确实会遇到他们以前可能从未遇到过的临时端口问题。在我看来,最好的解决方案是取消 SNAT 要求(上述第一个或第三个解决方案)。伸缩性得到很大改善,负载均衡器上的负载也减少了。增加的复杂性是值得的。
这是一篇关于这个问题的好文章,来自 F5 的 Lori MacVittie:HTML5 Web Sockets Changes the Scalability Game
归档时间: |
|
查看次数: |
4177 次 |
最近记录: |