Apache camel 当单独进程中的AMQ队列填满时,Camel生产者阻塞
我有两个单独的使用camel的Spring启动应用程序,让我们称它们为Apache camel 当单独进程中的AMQ队列填满时,Camel生产者阻塞,apache-camel,activemq,Apache Camel,Activemq,我有两个单独的使用camel的Spring启动应用程序,让我们称它们为producer和consumer 在producer过程中,camelProducerTemplate将消息发送到activemq:queue:consumer 在消费者过程中,侦听该队列 当我终止消费者进程时,我可以在AMQ控制台中看到队列中没有消费者,生产者向队列发送大约1000条消息,然后阻塞 如果我清除队列,生产者解除阻塞并处理大约1000条消息,然后我们重复 如果下游队列得到备份,为什么生产者进程会退出?我该如何解
producer
和consumer
在producer
过程中,camelProducerTemplate
将消息发送到activemq:queue:consumer
在消费者
过程中,侦听该队列
当我终止消费者
进程时,我可以在AMQ控制台中看到队列中没有消费者,生产者
向队列发送大约1000条消息,然后阻塞
如果我清除队列,生产者
解除阻塞并处理大约1000条消息,然后我们重复
如果下游队列得到备份,为什么生产者
进程会退出?我该如何解决这个问题
我使用的是
springboot1.5.6
、Camel 2.18.0
和Apache-activemq 5.11.0。redhat-630187
我觉得您的代理使用的是生产者流控制,这基本上意味着生产者将被阻止发送超出代理处理能力的消息。要解决这个问题,您可以启用消息游标,它将消息写入磁盘,从而延迟一个块,直到所有分配的磁盘空间都被填满
您可以阅读有关生产者流控制和消息游标的更多信息