2
@RabbitListener(queues="XYZ")
public void rabbitMsgReceiver(@Payload final UserProfile up, Message msg, Channel channel)  {

}

如果接收到的消息不是 的有效 JSON UserProfile,则ListenerExecutionFailedException发生并且消息进入 unack 状态。如何将消息发送到死信队列?

4

1 回答 1

1

您可以配置死信队列策略,以便将未确认的消息发送到 dlq,而不是将它们放入原始队列

https://www.rabbitmq.com/dlx.html#using-policies

例如对于您的队列 XYZ,假设您为它设置了 XYZ-dlq:

sudo rabbitmqctl set_policy XYZ-dlq "^XYZ$" '{"dead-letter-exchange":"", "dead-letter-routing-key":"XYZ-dlq"}' --apply-to queues 
于 2019-06-25T22:42:39.580 回答