ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RocketMQ-什么是死信队列?怎么解决

2022-01-14 22:00:15  阅读:354  来源: 互联网

标签:消费 消费者 队列 死信 正常 消息 RocketMQ


目录

什么是死信队列

死信队列的特征

死信消息的处理


什么是死信队列

        当一条消息初次消费失败,消息队列会自动进行消费重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。这个队列就是死信队列(Dead-Letter Queue , DLQ ),而其中的消息则称为死信消息(Dead-Letter Message , DLM )。 死信队列是用于处理无法被正常消费的消息的。

死信队列的特征

死信队列具有如下特征:         死信队列中的消息不会再被消费者正常消费,即DLQ 对于消费者是不可见的         死信存储有效期与正常消息相同,均为 3 天(commitlog文件的过期时间), 3 天后会被自动删除         死信队列就是一个特殊的Topic ,名称为 %DLQ%consumerGroup@consumerGroup ,即每个消费者组都有一个死信队列         如果⼀个消费者组未产生死信消息,则不会为其创建相应的死信队列

死信消息的处理

        实际上,当⼀条消息进入死信队列,就意味着系统中某些地方出现了问题,从而导致消费者无法正常消费该消息,比如代码中原本就存在Bug 。因此,对于死信消息,通常需要开发人员进行特殊处理。最关键的步骤是要排查可疑因素,解决代码中可能存在的Bug ,然后再将原来的死信消息再次进行投递消费。

标签:消费,消费者,队列,死信,正常,消息,RocketMQ
来源: https://blog.csdn.net/A_art_xiang/article/details/122487624

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有