【问题标题】:Acknowledging a message from AMQP in Camel在 Camel 中确认来自 AMQP 的消息
【发布时间】:2014-04-01 14:02:31
【问题描述】:

目前我正在为我的应用程序使用 bluelock 的 camel-spring-amqp 组件。

我想要实现的是:

  • 从 RabbitMQ 服务器拉消息。
  • 在成功处理时将其保存到数据库/在异常时将其发送到另一个“错误”队列
  • 告诉原始队列现在可以安全地从队列中删除消息。

在撰写本文时,我能够使用骆驼路线从 rabbit 中提取并持久保存到数据库。我真的不知道该怎么做是承认我的处理是对原始队列完成的。这是我目前的路线:

from("spring-amqp:EXCHANGE:queuename?autodelete=false&durable=true&type=direct&routingKey=")
            .bean(Transform.class, "transform(byte[])")
            .to("jpa:com.my.company.models.MyModel?entityType=java.util.ArrayList")

我意识到我可以将 acknowledgementMode 设置为 NONE。但是,一旦我坚持了我的信息,我就不知道如何“手动”确认。

感谢您的帮助!

【问题讨论】:

标签: spring rabbitmq apache-camel amqp


【解决方案1】:

我是 Camel 的新手,但我对 RabbitMQ 略知一二。
使用RabbitMQConsumer,如果processor 没有引发任何异常(RabbitMQConsumer source 处的第 133 行),则消息被确认。
所以我想如果你让你的处理器传播异常,消息将不会被确认。我没有使用过 spring-amqp 但我想它应该有类似的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2013-07-13
    • 2015-06-04
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多