queue - RabbitMQ 上的 Nack 和拒绝

标签 queue rabbitmq message-queue

我想处理消费者从队列中获取的不成功的消息并将它们重新排队。

想象一下我遇到这样的情况:

P => | foo | bar | baz | => C

其中 foo、bar 和 baz 是消息。

如果消费者读取 baz 但出现问题,我可以使用 basic.rejectbasic.nack ( https://www.rabbitmq.com/nack.html )。使用这两个命令之一,我将传递参数以重新排队消息。

问题是消息在之前的相同位置重新排队,因此下一条消息将再次是 baz

我想重新排队,但将其发送回队列的开头:

P => | baz | foo | bar | => C

我在应用程序中使用了几行代码解决了这个问题,但我想知道是否存在更好的解决方案,也许可以直接使用 RabbitMQ 的某些功能。

最佳答案

您可以查看死信队列(DLQ):https://www.rabbitmq.com/dlx.html

关于queue - RabbitMQ 上的 Nack 和拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43249811/

相关文章:

Python - 多处理的奇怪行为 - 连接不执行

node.js - 如何在aws sqs Node js中接收消息

f# - 如何在 F# 中使我的队列线程安全(并发)

java - 从 LinkedList 创建队列

kubernetes - 一个 Metricbeat Pod 来监控多个 RabbitMQ 容器

c# - 消息未到达公共(public)交通中的订阅者

multithreading - RabbitMQ 消费者中的并发消息处理

multithreading - 寻找最佳的多线程消息队列

architecture - MSMQ 与临时表转储

java - 阻塞队列 - 需要更多信息