使用四种框架分别实现百万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的性能也不错,但并不是主要考虑的框架。
➡️

继续阅读