Apache camel 当单独进程中的AMQ队列填满时,Camel生产者阻塞

Apache camel 当单独进程中的AMQ队列填满时,Camel生产者阻塞,apache-camel,activemq,Apache Camel,Activemq,我有两个单独的使用camel的Spring启动应用程序,让我们称它们为producer和consumer 在producer过程中,camelProducerTemplate将消息发送到activemq:queue:consumer 在消费者过程中,侦听该队列 当我终止消费者进程时,我可以在AMQ控制台中看到队列中没有消费者,生产者向队列发送大约1000条消息,然后阻塞 如果我清除队列,生产者解除阻塞并处理大约1000条消息,然后我们重复 如果下游队列得到备份,为什么生产者进程会退出?我该如何解

我有两个单独的使用camel的Spring启动应用程序,让我们称它们为
producer
consumer

producer
过程中,camel
ProducerTemplate
将消息发送到
activemq:queue:consumer

消费者
过程中,侦听该队列

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

如果我清除队列,
生产者
解除阻塞并处理大约1000条消息,然后我们重复

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


我使用的是
springboot1.5.6
Camel 2.18.0
Apache-activemq 5.11.0。redhat-630187
我觉得您的代理使用的是生产者流控制,这基本上意味着生产者将被阻止发送超出代理处理能力的消息。要解决这个问题,您可以启用消息游标,它将消息写入磁盘,从而延迟一个块,直到所有分配的磁盘空间都被填满

您可以阅读有关生产者流控制和消息游标的更多信息