ActiveMQ丢失了消息,怎么调试呢?

时间:2016-06-02 09:01:57

标签: php debugging activemq

我们使用独立的ActiveMQ 5.13.2,php和stomp。在同步模式下使用ActiveMQ踩踏(带收据检查)。

有时我会看到看起来像丢失消息的行为。

我们使用自己的任务管理系统,提供不同类型的任务。

会发生什么:

1)创建任务,在队列中发送消息。

2)从队列消耗消息,任务进行api调用等,然后在队列中发送新消息,有时间延迟(需要等待一段时间才能进行远程服务然后继续工作)。

就是这样,我们遇到了问题。

我预计在第2步发送的消息将从队列中消耗,但问题任务仍然处于“等待消费消息”状态,看起来像队列中的消息,等待免费消费者,或者像延迟时间仍未过期(但是我们有很多免费的消费者,排队空和时间延迟到期)。

例如,今天这种情况发生在约50个任务中。正确完成了另外数万个任务。

我确定在第2步消息被正确发送,因为php-stomp库配置为确认通过收据发送消息(我们使用此库:https://github.com/centraldesktop/php-stomp

所以我的问题:哪种方式最适合调试此问题?例如,我可以在几天内登录ActiveMQ所有关于在队列中发送的消息,在sheduler中发送,从sheduler移入队列以及消费消息的信息吗?

还是存在其他方式?

0 个答案:

没有答案