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

时间:2015-11-09 23:29:25

标签: rabbitmq 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无法处理我的消息并将其发布到dlq。他们会自动移动到我的原始队列重试还是我应该写一个处理器来将我的DLQ消息移动到我的原始队列

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

4)当我提出我的服务时。但根据我的理解,我从DLQ中想到,当我的服务启动时,将再次重试该消息。

但是从DLQ开始,它没有再次重试。我需要设置哪种配置?

根据文件:

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

2 个答案:

答案 0 :(得分:2)

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

  

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

所以,不;没有“设置”你可以改变。

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

您还可以使用technique described here在DLQ上设置消息TTL,并将其配置为在TTL到期时路由回主队列。

答案 1 :(得分:1)

您知道吗,您可以在Rabbitmq中使用铲子插件从DLQ移动回到总线队列。