ActiveMQ5.5 消息堵塞太多, 求思路.

小鸵鸟 发布于 2011/07/16 23:05
阅读 11K+
收藏 1
消息出现了严重堵塞.个人感觉具体原因是由于MQ消息下发更不上和Listener中处理这块太慢.
现在是创建了5个jms Listener去监听该queue, 在listener onMessage()中已线程池(20个线程)方式去执行消息.请问有什么好的方法来处理这些消息吗?
理想状态是:
    1,消息消息队列中无待处理消息;
    2,在onMessage()过程中保持先进先出原则,(因为现在使用了多个listener,并且使用了线程池,虽然在MQ下发消息时是先进先出,但在onMsg()可能出现顺序混乱);
    3,任何消息量(消息量是没发估算的,有可能比这个更大)满足1,2条.
time	Number Of Pending Messages	Messages Enqueued	Messages Dequeued
17:08:48	17802844	            5213034	            2045433
17:11:54	17823295	            5238558	            2050506
17:15:25	17843986	            5264177	            2055434
18:05:02	18111911	            5606366	            2129698

加载中
1
小鸵鸟
小鸵鸟

这个问题已解决, 问题在于程序端处理消息速度没跟上, 优化处理消息业务后已经没问题.

1
xmdeepdata
xmdeepdata

同关注,个人认为ActiveMQ跟Tomcat一样,大并发大容量下必须走集群机制才能保证可用性。

不知道哪位有空能够测试下什么量级下可用于产品环境,这样可以评估集群规模

1
冰清
我目前也在使用activemq5.5版本。确实有假死,堵塞消息问题,一直找不到解决方法。不知楼主有新的办法吗?
1
s
sunnyailon

可以考虑采用broker cluster或者consumer cluster

消息堆积过多,应该是consumer消费消息的速度跟不上,考虑提升consumer的消费能力

另外,还有一些例外,如:多个consumer网络不对等时,也会拖累broker的消息排放速度

需要综合各方面因素进行调制、解决问题。

返回顶部
顶部