RocketMQ5.0死信队列

消费逻辑的最终兜底机制,若消息一直处理失败并不断进行重试,直到超过最大重试次数还未成功,此时消息不会再重试,会被投递至死信队列。您可以通过消费死信队列的消息进行业务恢复。

死信队列

当一条消息初次消费失败,RocketMQ会自动进行消息重试,达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息。此时,该消息不会立刻被丢弃,而是将其发送到该消费者对应的特殊队列中,这类消息称为死信消息(Dead-Letter Message),存储死信消息的特殊队列称为死信队列(Dead-Letter Queue),死信队列是死信Topic下分区数唯一的单独队列。如果产生了死信消息,那对应的ConsumerGroup的死信Topic名称为%DLQ%ConsumerGroupName,死信队列的消息将不会再被消费。可以利用RocketMQ Admin工具或者RocketMQ Dashboard上查询到对应死信消息的信息。

云消息属性

云消息队列 RocketMQ 版默认不保存死信消息,消息转为死信状态后将被丢弃。

死信消息是作为一条新的消息被存储到死信Topic中,云消息队列属性变更如下:

  • Message ID:死信消息转储到死信Topic后会生成新的Message ID。

  • 用户自定义属性、消息体等用户设置的信息不变。

  • 死信消息的保存时长:从进入死信Topic后重新开始计算。例如,某条消息生产者发送到服务端的时间为13∶00∶00,2个小时后(15∶00∶00)该消息消费失败且重试失败被存储至死信Topic,则该消息的保存时长从15∶00∶00开始计算。

  • 保存死信消息的Topic只支持普通消息和顺序消息类型的Topic,事务消息类型和定时消息类型的Topic不能作为死信Topic。

  • 不支持将生产原消息的Topic作为死信Topic(避免出现循环雪崩的问题)。在死信消息转存流程中,若系统发现死信Topic和生产消息的原Topic相同,则该条消息将被丢弃。

  • 不同Topic的死信消息可以保存到同一个死信Topic中。

  • 删除某个ConsumerGroup时,对应的死信Topic不会被删除。

  • 若某个Topic被死信策略引用,删除该Topic前,您必须先解除该Topic的死信策略关系。

主机安装的RocketMQ5.0死信队列属性:

  • 保存死信消息的Topic 支持普通消息,顺序消息类型和事务消息类型和定时消息
  • Message ID:死信消息转储到死信Topic后会生成新的Message ID。

  • 用户自定义属性、消息体等用户设置的信息不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值