RabbitMQ:死信会再次消失吗?

RabbitMQ:死信会再次消失吗?,rabbitmq,message-queue,dead-letter,Rabbitmq,Message Queue,Dead Letter,我们使用2个队列和x-dead-letter-exchange/x-message-ttl实现了延迟消息处理,其中在队列1中消息超时后,它将进入队列2 现在是否可以设置RabbitMQ,以便在处理来自queue2的消息时,如果我们将其作为“死信”拒绝,那么它将自动转到queue3? 我担心的是,队列2中的邮件已经标记为“已死亡”,是否有办法区分那些已死亡的邮件,因为它们被拒绝并自动将其仅放入队列3?是的,邮件可能多次出现死信 要查看邮件死信的原因,请查看x-death标题,该标题是数组排序的最新

我们使用2个队列和x-dead-letter-exchange/x-message-ttl实现了延迟消息处理,其中在队列1中消息超时后,它将进入队列2

现在是否可以设置RabbitMQ,以便在处理来自queue2的消息时,如果我们将其作为“死信”拒绝,那么它将自动转到queue3?
我担心的是,队列2中的邮件已经标记为“已死亡”,是否有办法区分那些已死亡的邮件,因为它们被拒绝并自动将其仅放入队列3?

是的,邮件可能多次出现死信

要查看邮件死信的原因,请查看
x-death
标题,该标题是数组排序的最新标题,所以邮件死信的最新原因是第一个

有关更多详细信息,请查看

UPD:

在RabbitMQ官方用户组中讨论了以下内容:

我担心的是:由于发来的信息已经 TTL写的死信有没有办法将他们从队列2移动到队列3 仅当它们被拒绝时

严格地回答你的问题,否:你不能选择参加哪些活动 一笔勾销

然而,我认为你真正想问的是“不会所有的信息都来自 queue2立即将死信发送给queue3,因为它们已经 答案是否定的;一旦收到一条信息 已经死信给queue2,然后它是一个自由球员,只会 如果它再次做了一些死板的事情,就再次死板


是的,但如果我有3个队列,我是否可以设置只有当死信消息被拒绝时才从队列2移动到队列3的规则?如果消息被拒绝或达到TTL或长度限制,DLX可以工作。因此,如果您不使用TTL并且没有设置队列长度,那么是的,您将得到您想要的。如果消息已通过TTL以死信的形式从队列1移动到队列2,这是否意味着无法仅将其中已读取并被拒绝的消息移动到队列3?我会说不。如果不使用消息,这看起来是不可能的。但是有exchange-to-exchange绑定,所以也许它们可以帮助您实现这一点。虽然我不确定他们,但试着玩头球交换和e2e宾金斯。或者最好用英语问这个问题。无论如何,若能从您选择的解决方案中获得反馈,那个就太好了。我从RabbitMQ用户组收到了对我的消息的响应:所以他们确认消息不会自动从队列2移动到队列3,直到再次发送交易信为止。你能更新你的答案让我接受吗?