我在我的春天定义了流xd我的流看起来像这样,运输是兔子mq
stream source|transformer1|transformer2|transformer3|sink
我已经部署了自定义变换器。我想将我的变换器/自定义模块中发生的所有异常/错误写入errorQueue 我想将errorQueue中的消息拉到mongoSink
我可以通过从rabbiterror队列创建tap到mongo
来实现这一点`tap -->rabbit_ERROR_QUEUE-->mongoSink`
我有没有办法配置我的spring xd自定义模块xml,默认情况下将所有异常和错误写入错误队列?
答案 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中提取。