RabbitMQ-死信(Dead Letter)

对于有异常的消息我们可以有如下做法:
  1. 记录下来再ack。
  2. nack或者reject,同时将requeue设为false。
  3. 在第2条的基础上增加死信(Dead Letter)。
 
上边的第3个做法可以让这些异常的消息进入一个异常消息队列,等待我们的处理。
 
一个消息成为死信有以下几种原因:
  • rejected - 也就是上边第2种做法
  • expired - 超过了队列设置的TTL(该值为消息在队列中停留最大时长,注意在达到TTL时消息为“Ready”状态才会过期生效)
  • maxlen - 队列里的消息数量超过了设置的最大值(该值也指“Ready”状态的消息数,而不是Total)

posted on 2016-09-09 10:22  xzysaber  阅读(1811)  评论(0编辑  收藏  举报

导航