知识卡片

拒绝消息后的两种走向

专业/工作 · 591.b

内容

消费者收到消息后除了确认(ack),还可以显式拒绝:Basic.Reject只能拒绝单条消息,Basic.Nack可以借助multiple参数批量拒绝。两者都靠requeue参数决定消息的去向——requeue为true时消息被重新放回队列等待再次投递,为false时消息被直接移出队列(若配置了死信交换器,则会被转发过去)。发散:把”拒绝”和”重新入队”拆成两个独立开关,让”这条消息处理失败了”和”要不要再给别人一次机会”成为两个可以分别决策的问题,而不是绑定在一起的单一动作。

参考来源

《RabbitMQ实战指南》第3章《客户端开发向导》