使用带有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)
1 回答
从websocket配置rabbitMQ作为中继代理时,心跳设置为10秒 . 通过将心跳变为零,它开始为更多连接工作而没有任何问题 .