开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段):死信队列介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/704/detail/12456
死信队列介绍
1、死信队列
消息如果消费失败,MQ会允许消费者进行消息重置的。但是重置的次数超过最大重置次数之后,消息就不能够正常的消费了。但是rocketMQ也不会丢弃这个消息,会把消息放到特殊的队列中,这个特殊的队列就被称作死信队列。
2、死信队列的两大特征:
死信队列里面的消息不会再次被消费,因为这里面的消息已经被移到特殊的消息队列里面了。有效期与正常的消息是一样的,都是三天。如果产生了死信队列之后,当前的消息一定要在三天之内删除。死信队列内的消息不是面对每一个消费者实例,而是面向同一个消费者组(group ID)。如果当前的消费者没有产生死信,那么这个死信队列就不会创建出来。
一个死信队列包含了一个组内所有的死信信息和topic是无关的。也就是这个死信队列中可能会包括多个topic的消息。以上是死信队列的特征。
产生了死信信息是怎么知道的?
可以通过控制台去查看:
在控制台中点击主题,这里可以进行筛选。选择死信,因为目前没有死信队列,所有这里显示的不存在。如果有死信队列的话,可以看到死信队列相关的信息。包括当前死信队列的主题。
查阅到死信队列之后可以怎么办?
点击控制台中的消息,在这里选择所对应的死信队列的主题,然后点击搜索。查到之后可以在面板上进行消息的重发,可以重新发送。
或者重新的写上消息的消费者,去消息指定的死信队列里面的消息。有两种机制,第一种可以通过rocketMQ控制台的方式去重新消费。第二种可以重新写消费者专门针对当前的死信队列里面的消息。
以上就是死信队列基本的知识点。
需要关注的信息有:
1、死信队列是如何产生的。因为消息在消费的时候超过重试次数之后还没消费者消息就会进入死信队列。
2、死信队列的来源不是某一个消费者,而是某一个消费者组。这里面可能会包括多个topic的信息。
3、如果产生了死信队列,可以通过控制台去查看。查到之后可以通过控制台重新的发送;或者重新写上消息的消费者然后进行处理。
以上就是对死信队列的说明。