![](/img/trans.png)
[英]Bind RabbitMQ consumer using Spring Cloud Stream to an existing queue
[英]Message getting redelivered to RabbitMQ consumer setup using spring cloud stream
我们有一个 SpringBoot 服务实现,我们在其中使用具有以下设置的延迟消息传递:
延迟消息传递似乎按预期工作,但我发现在某些情况下消息重新传递存在问题。
如果我在我的消费者中有一个调试点并在阅读消息一段时间后保留该消息,那么在处理完当前消息后,消费者将获得另一条具有以下属性的消息:
x-death
header 而重新发送的消息似乎没有。 尝试传递消息的次数是我每次在读取每条重新传递的消息后使用调试点暂停消费者的次数的
3 倍
。
我的理解是,默认情况下的确认模式是自动的,所以一旦消费者阅读了消息,它就不会被重新发送?
我尝试过使用maxAttempts=1
属性,但似乎没有帮助。
我正在使用 spring 云 stream 创建消费者和队列。
当消费者中的消息处理失败(抛出异常)时,我曾经遇到过这个问题。 在这种情况下,如果您配置了 DLQ,请确保也添加以下配置,以便将失败的消息路由到 DLQ 而不是原始的侦听队列。 “兔子:autoBindDlq:真”
否则,如果您不设置 DLQ,请将“autoBindDlq”配置为“false”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.