使用四种框架分别实现百万websocket常连接的服务器
💡
原文中文,约13200字,阅读约需32分钟。
📝
内容提要
作者测试了Netty、Undertow、Jetty、Spray、Vert.x、Grizzly和Node.js七种框架的C1000K服务器性能,发现每种框架都能轻松处理120万个WebSocket连接,但资源占用和事务处理时间有所不同。作者还提到了360使用Go实现的消息推送系统的数据。
🎯
关键要点
- 作者测试了七种框架的C1000K服务器性能,包括Netty、Undertow、Jetty、Spray、Vert.x、Grizzly和Node.js。
- 每种框架都能轻松处理120万个WebSocket连接,但资源占用和事务处理时间有所不同。
- 测试使用了两台AWS服务器,客户端每台建立60000个WebSocket连接。
- 360的消息推送系统使用Go实现,支持亿级长连接和日下发百亿量级消息。
- 服务器和客户端的参数调优包括TCP/IP参数和最大文件描述符设置。
- Java应用内存调优使用了优先吞吐率的垃圾回收器。
- 客户端连接数量受限于本地端口,需使用更多机器或虚拟IP来增加连接数。
- Netty、Spray和Undertow等框架在建立连接和发送消息时表现良好,内存占用和CPU使用率各有差异。
- Node.js的性能也不错,但并不是主要考虑的框架。
➡️