我正在使用用于 php 的 amqp 库作为 rabbitmq 客户端,我们想拒绝来自名为“test”的队列中的消息
为了不丢失此消息,我们定义了名为“test.deadletter”的死信队列。
如果我们直接将消息添加到队列“test”(通过 web 界面)并通过 amqplib 客户端的 basic.reject 方法拒绝此消息,则消息将正确移动到死信队列。
但是,如果我们使用一些交换(带有路由密钥)将消息放入测试队列,然后我们尝试拒绝它,那么消息就会丢失。它不再在测试队列中,也不在 test.deadletter 队列中。
消息是相同的,basic.reject 方法所需的两个参数在两次尝试中都相同。没有区别,只是事实是,消息一次来自交换,另一次来自某些直接插入。
这是一种错误还是预期的行为?我错过了什么?
此致