【问题标题】:Does Apache Camel ActiveMQ component guarantees delivery message to broker?Apache Camel ActiveMQ 组件是否保证向代理传递消息?
【发布时间】:2019-01-17 09:43:37
【问题描述】:

Apache Camel ActiveMQ 组件是否保证向代理传递消息? 如果我理解正确(reading this doc)Camel 默认为 JMS 启用了persisentDelivery 配置,这保证了使用来自代理的消息。 但我不明白:它如何从应用程序生产到代理(如果是,它使用什么样的存储)?如果默认不支持这种保证,Camel是否提供了一种简单的实现方式? 提前致谢

【问题讨论】:

  • ActiveMQ 使用 KahaDB 数据库,见activemq.apache.org/kahadb.html
  • @EvgeniyDorofeev, ty, KahaDb 在代理端使用,但我在询问应用程序端的存储消息,以防代理服务器不可用。

标签: apache-camel jms


【解决方案1】:

只有当消息被代理确认时,它才会安全地发送到代理,在那里它得到保证。持久选项只是告诉代理将消息存储在存储中,而不是仅将其保存在内存中。

所以如果Camel由于网络问题等原因无法将消息发送到broker,那么操作就会失败,你需要在Camel中处理这个错误。

您可以做的是在您的 Camel 应用程序旁边拥有一个本地 ActiveMQ 代理,然后将这些代理连接到一个代理网络,其中代理将在彼此之间安全地路由消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2017-04-07
    • 1970-01-01
    • 2017-06-28
    • 2014-07-17
    • 2013-12-25
    • 2016-11-18
    相关资源
    最近更新 更多