当单独进程中的AMQ队列填满

时间:2017-10-26 09:55:42

标签: apache-camel activemq

我有两个使用驼峰的独立Spring Boot应用程序 - 让我们称呼它们为producerconsumer

producer进程中,骆驼ProducerTemplateactivemq:queue:consumer发送消息

consumer进程中,侦听该队列。

当我终止consumer进程时,我可以在AMQ控制台中看到没有队列的消费者,producer向队列发送大约1000条消息,然后阻塞。 / p>

如果我清除队列,producer取消阻止并处理另外1000条消息,然后重复。

如果备份下游队列,为什么producer进程会退出?我该如何解决这个问题?

我正在使用Spring Boot 1.5.6Camel 2.18.0Apache activemq 5.11.0.redhat-630187

1 个答案:

答案 0 :(得分:1)

听起来我的经纪人正在使用Producer Flow Control,这基本上意味着生产者将被阻止发送比经纪人可以处理的更多的消息。要解决此问题,您可以启用消息游标,将消息写入磁盘,从而延迟一个块,直到所有已分配的磁盘空间都已填满。

您可以阅读有关Producer Flow Control here和Message Cursors here的更多信息。