spring xd 以 rabbit errorQueue 作为 errorChannel

spring xd with rabbit errorQueue as errorChannel

我在我的 spring 中定义了流 xd 我的流看起来像这样并且传输是 rabbit mq

stream source|transformer1|transformer2|transformer3|sink

我有自定义转换器 deployed.I 想将我的 transformers/custom 模块中发生的所有 exception/error 写入错误队列 然后我想将 errorQueue 中的消息拉到 mongoSink

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

的 tap 来实现
`tap -->rabbit_ERROR_QUEUE-->mongoSink`

有什么方法可以配置我的 spring xd 自定义模块 xml 以默认将所有异常和错误写入错误队列?

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

您还需要配置重试。

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

另一个bus/deployment属性republishToDLQ提供了一种机制让总线重新发布消息到DLQ(而不是拒绝它)。这将在错误消息(异常异常等)中包含其他信息,如 headers.

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

但是,您不会使用水龙头消费 DLQ,但是....

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

即使用 rabbit 源从 DLQ 中提取。