在Camel中确认来自AMQP的消息

时间:2014-04-01 14:02:31

标签: spring rabbitmq apache-camel amqp

目前,我正在使用bluelock的camel-spring-amqp组件进行申请。

我想要实现的目标是:

  • 从RabbitMQ服务器中提取消息。
  • 成功处理后将其保留到数据库中/将其发送给另一个"错误"排队异常
  • 告诉原始队列现在可以安全地从队列中删除消息。

在撰写本文时,我能够从兔子中取出并使用驼峰路线持续到数据库。我真正不知道如何做的是确认我的处理是对原始队列进行的。这是我目前的路线:

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")

我意识到我可以将acknowirmMode设置为NONE。但我不知道如何手动"一旦我坚持了我的信息,就会承认。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我是Camel的新人,但我对RabbitMQ了解一两件事 如果RabbitMQConsumer没有抛出任何异常(RabbitMQConsumer source处的第133行),则会processor确认消息。
所以我想如果你让你的处理器传播异常,那么消息就不会被确认。我没有使用过spring-amqp,但我想它应该有类似的行为。