我们正面临着ActiveMQ及其消费者的随机问题。我们观察到,即使连接到ActiveMQ队列,很少消费者也没有收到消息。但消费者重新启动后,它工作正常。消费者未收到来自ActiveMQ的消息
我们有一个在侧面的ActiveMQ名为testQueue队列。消费者试图从这个队列中排列消息。我们正在使用Spring的DefaultMessageListenerContainer来达到这个目的。消息正从ActiveMQ Broker传送到消费者节点。从tcpdump也很明显,消息正在到达消费者节点,但实际的消费者代码无法看到消息。换句话说,消息似乎停留在ActiveMQ使用者代码或Spring的DefaultMessageListenerContainer中。
请参阅下图。以更清楚地解决这个问题。消息正在到达Consumer节点,但未达到“实际消费者类别”,这意味着该消息陷入AMQ消费者代码或Spring DMLC中。
以下是ActiveMQ的管理拍摄的所有细节。
队列名称/待-消息计数/消费者计数/信息-入队/消息 - 已出列 testQueue/9/1/9/0
以下是在更多的细节。
连接ID/SessionID的/选择/排入/队列中取出/调度/调度-队列/预取 ID:bearsvir52-45176-1375519181268-3:5/1// 9/0/9 /二百五十○分之九
从第二张表中可以明显看出,消息正在传递给消费者,但消费者没有确认消息。因此,这些消息被卡在代理端的Dispatched-Queue中。
为你们注意几点:
1)没有时间差的B/W代理节点和消费者节点。
2)观察到消费者侧tcpdump的。我们可以看到MessageDispatch(Openwire)数据包被传输到消费者节点,但是找不到MessageAck(Openwire)。
3)有时它是工作在一个节点上,有时它是在相同的节点上创建的问题。的这个
你能张贴在Spring配置,显示ConectionFactory,叶准直器和监听器类? –
我面对完全相同的问题。你有没有得到解决方案? –
有没有更新?我有一个类似的问题 – Nereis