我们一直在评估 Spring-Stomp-Broker-websockets,以使其成为在 AWS 上运行的全双工类型消息应用程序。我们原本希望使用 Amazon MQ。我们向个人用户推送消息,也进行广播。所以从功能上来说,这个堆栈看起来确实不错。我们有大约 40,000 - 80,000 名用户。通过负载测试,我们很快发现 Spring 堆栈或 Amazon MQ 都无法很好地扩展,存在以下问题:
\n\n是的,我们增加了机器上的文件句柄等,因此 TCP 连接不是限制。Spring 不可能接近这里的限制。我们正在发送一条 18 K 的消息,用于负载,这是我们期望的最大值。在我们的结果中,消息大小几乎没有影响,它只是 Spring Stack 上的连接开销。
\n\nStompBrokerRelayMessageHandler 为每个 STOMP Connect 打开与 Broker 的连接。没有办法集中连接。因此,这使得这个 Spring 功能对于任何 \xe2\x80\x98real\xe2\x80\x99 Web 应用程序完全无用。为了支持我们的用户,用于 MQ 的 AWS 大型服务器的成本意味着该解决方案非常昂贵,需要 40 台最大的服务器。在负载测试中,Amazon MQ 机器不执行任何操作,对于 1000 个用户,它没有加载。实际上,我们所有代理只需要几台中型机器即可。
\n\n有没有人曾经使用 …