在 spring xd 中使用 DLQ 配置自动处理

auto process with DLQ configuration in spring xd

1)我想为我的流配置 DLQ

 stream create --name httptest7 --definition "http |  http-client --url='''http://localhost:8080/mock-sentmessage/customers/send-email''' --httpMethod=GET | log" 
stream deploy httptest7 --properties module.*.consumer.autoBindDLQ=true

2)我做了

autoBindDLQ=true

我有一个疑问,如果假设 spring xd 无法处理我的消息并 post 它到 dlq 。他们会自动移动到我的原始队列重试还是我应该写一个处理器来将我的 DLQ 消息移动到我的原始队列

3) 现在我关闭我的网络服务 http://localhost:8080/mock-sentmessage/customers/send-email 我可以看到我的 dlq 中填写了消息。

4) 当我启动我的服务时。但是根据我的理解,我认为从 DLQ 开始,当我的服务启动时,消息将再次重试。

但是从 DLQ 开始它不再重试。我需要设置什么配置吗?

根据文档:

没有提供将死信消息移回总线队列的自动化机制。

我不确定你的问题是什么,或者即使你有一个问题;您似乎已经通过引用文档回答了您自己的问题:

There is no automated mechanism provided to move dead lettered messages back to the bus queue.

所以,不;没有 "setting" 可以更改。

您可以做几件事 - 编写自己的代码将消息从 DLQ 移回主队列;使用 Spring AMQP 或您选择的任何语言只需要几行 Java。

您还可以使用 设置 DLQ 上的消息 TTL,并配置它在 TTL 到期时路由回主队列。

如你所知,你可以在 Rabbitmq 中使用 shovel 插件来完成从 DLQ 回到总线队列的移动。