spring xd with rabbit errorQueue as errorChannel

时间:2015-11-18 00:51:03

标签: rabbitmq spring-xd

我在我的春天定义了流xd我的流看起来像这样,运输是兔子mq

stream source|transformer1|transformer2|transformer3|sink

我已经部署了自定义变换器。我想将我的变换器/自定义模块中发生的所有异常/错误写入errorQueue 我想将errorQueue中的消息拉到mongoSink

我可以通过从rabbiterror队列创建tap到mongo

来实现这一点
`tap -->rabbit_ERROR_QUEUE-->mongoSink`

我有没有办法配置我的spring xd自定义模块xml,默认情况下将所有异常和错误写入错误队列?

1 个答案:

答案 0 :(得分:1)

如果将autoBindDLQ设置为true(在所有流的servers.yml中,或在流级别的部署属性中),XD将为您创建一个死信队列。

您还需要配置重试。

默认情况下,总线会尝试将消息传递3次然后拒绝它,然后代理会将其转发到死信队列。

另一个总线/部署属性republishToDLQ为总线提供了一种机制,可以将消息重新发布到DLQ(而不是拒绝它)。这将在错误消息中包含附加信息(例外异常等)作为标题。

有关这些属性的完整信息,请参阅参考手册的the application configuration section the deployment section

但是,您不会使用点击来使用DLQ,但....

stream create errorStream --definition "rabbit ..."

即。使用rabbit来源从DLQ中提取。