jms broken pipe异常分析

前段时间,公司一个重要的商用项目中用到了基于jms的消息框架--activeMQ,在高并发的情况下,经常会导致jms宕机,造成的原因之一就有broken pipe异常,就是通常说的管道破裂。经过反复分析和本地测试,问题得到重现。分析结果如下:

1.消息接受方采取的是同步处理机制。

2.消息接收方在每接到一条消息后,对消息的处理耗时比较长,这时消息发送端,还在不断的发送消息。

3.当发送的消息比接受的消息,到达3:1的情况下,会导致管道破裂,因为消息是通过虚拟的管道在传输数据,这时遗留在 

   管道中的消息过多,导致出现此问题。

就如同人憋尿憋的时间太长的话,会感到很不舒服,长期这样不但对身体不好,还。。。。甚至也可能会导致"管道破裂"。所以不要憋尿。。。。。

你可能感兴趣的:(问题,分析)