rocketMq之安全性(结尾:十)

本文介绍了RocketMQ中顺序消息和无序消息的重试机制。顺序消息在消费失败后会持续重试,可能导致阻塞,需及时监控。无序消息在集群模式下可设置重试,广播模式不重试。默认重试16次后进入死信队列,死信消息有效期3天。处理消息幂等性问题时,建议使用业务唯一标识作为消息Key。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 顺序消息的重试

顺序消息消费失败后,rocketMq会进行不断地重试(1秒),所以使用顺序消息要保证及时监控,避免阻塞现象发生

  • 无序消息的重试

无序消息消费失败时,是可以设置返回状态的。无序消息的重试只针对集群模式,广播模式不会进行重试

  • 重试次数

默认情况下,总共16次,会进入死信队列,如果配置大于16次,则时间间隔是2小时,下面是表示间隔时间:

注意:重试时messageId不会变化

  • 配置方式

消息消费失败,重试配置方式,推荐方式1

  • 死信队列

当超过最大重试测试仍然还无法消费时,消息会进入死信队列,而消息称为死信消息

  • 死信消息特点
  1. 无法被正常消费
  2. 有效期和正常消息相同,3天自动删除
  • 死信队列特点
  1. 一个死信队列对应一个GroupId,而不是单个消费者实例
  2. 如果GroupId未产生死信消息,则该GroupId不会产生死信队列
  3. 一个死信队列包括GroupId的所有消息,而不管属于哪个Topic
  • 消息幂等性处理

消费方多次消费相同消息,他们结果要保证一致

  • 消息幂等的必要性
  1. 发送时重复:消息发送并处理成功,但客户端没有接收到响应,引起生产者重复发送消息
  2. 投递时重复(消费):消费者接收到消息并处理成功,但服务器没有接收到响应,引起服务器重复发送消息
  3. 负载均衡时重复:但Broker或客户端发生重启,扩容,缩容,会除非rebalance,消费者会重复接收到消息
  • 处理方式

使用业务唯一标识作为消息key进行处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值