【问题标题】:Camel Producer blocks when AMQ queue in separate process fills up当单独进程中的 AMQ 队列填满时,Camel Producer 会阻塞
【发布时间】:2017-10-27 02:14:33
【问题描述】:

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

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

consumer 进程中,监听该队列。

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

如果我清除队列,producer 会解除阻塞并处理大约另外 1000 条消息,然后我们重复。

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

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

【问题讨论】:

    标签: apache-camel activemq


    【解决方案1】:

    在我看来,您的代理正在使用生产者流控制,这基本上意味着生产者将被阻止发送超出代理可以处理的消息。为了解决这个问题,您可以启用消息游标,它将消息写入磁盘,从而延迟一个块,直到所有分配的磁盘空间都被填满。

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

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 2015-08-12
      • 2011-03-27
      • 1970-01-01
      • 2019-07-08
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      相关资源
      最近更新 更多