首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ死信处理保证

RabbitMQ死信处理保证
EN

Stack Overflow用户
提问于 2019-06-25 17:27:32
回答 1查看 434关注 0票数 1

如果我使用发布者确认,我可以(合理地)确定发送到RabbitMQ服务器上的exchange的消息以及从RabbitMQ服务器接收确认的消息不会丢失,即使RabbitMQ服务器崩溃(例如断电)。

但是,当消息在使用者手动拒绝后到达死信交换时会发生什么?(channel.basicReject,我使用Spring AMQP。)

如果原始消息从使用者正在侦听的队列中退出队列,并且RabbitMQ服务器随后崩溃,我是否仍然可以确定,在RabbitMQ服务器重新启动后,我最终会在绑定到死信交换的队列中找到该消息(如果正常情况下该消息已经到达该队列)?

如果答案是否定的,有没有办法确保情况是这样的?

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 05:36:31

正如@GaryRussell建议的那样,我在rabbitmq-users Google group上发布了一个类似的问题。

以下是我从Daniil Fedotov那里得到的答案

代码语言:javascript
复制
"Hi,

There is no delivery guarantees in place. Dead lettering does not check if the message was enqueued or saved to disk.
Dead-lettering does not use publisher confirms or any other confirm mechanisms.

It's not that easy to implement reliable dead-lettering from one queue to another and there are plans to address this issue eventually, but it may take a while.

If you want to safely reject messages from the consumer without a risk of losing them - you can publish them from the consumer application manually to the dead-letter queue, wait for the confirmation and then reject."
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56750827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档