我计划添加更多 Web 应用程序服务器以支持不断增加的客户端,部署 HAproxy 和 Keepalived 以实现负载平衡和高可用性。
我的服务器使用具有以下特点:
- 作业不是 CPU 密集型的。消息是少于 100 个字符的 JSON 文本。
- 用户将通过客户端设备 Y 向服务器发送消息。通常每天 4-5 条消息
- 客户端设备 X 一直在等待来自服务器的消息。如果消息在服务器上可用,客户端设备 X 必须能够在 2 秒内得到它。否则,此消息已过时。
为此原因,
- 客户端设备 X 正在使用长轮询 HTTP 连接以进行响应。每个连接将持续 5 秒并重新连接。
- 客户端设备 X 和客户端设备 Y 连接到同一服务器,因此 X 和 Y 可以轻松发送消息
题
如果有超过 60,000 个客户端设备 X 连接到服务器,我的负载平衡器或路由器将耗尽 TCP 端口。例如,扩展 20,000 个用户的最佳方法是什么?
我的服务器在 Ubuntu 服务器上运行,使用 tomcat 和 Java Servlet。