使用带有stcat的tomcat服务器和rabbit mq的spring Websockets作为消息代理。
当尝试在没有RabbitMQ作为中继代理的情况下运行时,它允许最大约10000个连接。 (基于tomcat允许的最大连接数限制)
当尝试使用RabbitMQ作为中继代理(在AWS中托管 - 单个实例)时,在进行负载测试时,在经过一定数量的连接(4000)后失败。 (在RabbitMQ中更改了配置文件 - Filedescriptors 10000,套接字描述符8908,内存2.8 GB)。 对于stompclient,心跳设置为零。尝试增加Java客户端堆内存。
超过4000连接后失败。在RabbitMQ中验证是否有任何限制,或者有没有办法加载测试?
java.lang.Exception: {message=[Connection to broker closed.], content-length=[0]}
at org.springframework.messaging.simp.stomp.DefaultStompSession.invokeHandler(DefaultStompSession.java:435)
at org.springframework.messaging.simp.stomp.DefaultStompSession.handleMessage(DefaultStompSession.java:421)
答案 0 :(得分:0)
从websocket配置rabbitMQ作为中继代理时,心跳设置为10秒。通过将心跳变为零,它开始为更多连接工作而没有任何问题。