我使用activeMQ作为全功能代理。我已经在Tomcat 8.0.8上部署了我的spring应用程序。我正在发送非常大的消息,我在单独的线程中进行(在while循环中大约230000个stomp消息)。当我在activeMQ控制台中使用Chrome或Firefox时,我发现消息几乎是立即消耗的。问题始终是IE。我可以看到它停止消费消息(大约1000后),而Tomcat在
失败java.lang.Thread.run(Thread.java:722)aused by:org.apache.catalina.connector.ClientAbortException:java.io.IOExcepti n:org远程主机强行关闭现有连接。 aplet.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffe .java:396)org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426)org.apache.catalina.connector.OutputBuffer.doFlush( OutputBuffer.java:42)在org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:31)等....
IE默认是消费者这么慢还是什么?我曾与ActiveMQ尝试过许多缓慢的消费者政治,但没有成功。
答案 0 :(得分:1)
异常指向客户端某种IO错误。您可以尝试跟踪客户端发生的情况,例如使用Fiddler来检查是否有任何报告的错误,或者如果那次失败,Wireshark将无法跟踪发送的HTTP消息以及获取的消息。另请尝试使用repo.spring.io/libs-snapshot提供的最新4.0.6.BUILD-SNAPSHOT(或更好的4.1.0.BUILD-SNAPSHOT)。最近有一些与SockJS相关的修补程序值得尝试。
答案 1 :(得分:0)
我尝试过4.1.0.BUILD-SNAPSHOT,但没有成功。过了一会儿Fiddler报道:
POST mylink / ami-0.1.0 / liveEvents / 072 / omseen4z / xhr_send?t = 1404832405318 HTTP / 1.1 接受: / 接受语言:en-us 推荐人:mylink / ami-0.1.0 / liveEvents / iframe.html#ensha4ej Accept-Encoding:gzip,deflate User-Agent:Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.1; WOW64; Trident / 6.0) 主持人:mylink 内容长度:6 DNT:1 连接:保持活力 Pragma:没有缓存 Cookie:JSESSIONID = 4CC71475E3FF1377C79D77C349710237;主题=标准
[" \ n"]
和HTTP / 1.1 404 Not Found错误发生。
这可能是什么原因(新行消息)。我添加了activemq prefetchSize为1,我对每个收到的消息都做了确认。
马尔科