上云无忧 > 文档中心 > 天翼云分布式消息服务RocketMQ消费幂等
分布式消息服务RocketMQ
天翼云分布式消息服务RocketMQ消费幂等

文档简介:
(1)RocketMQ无法避免消息重复,原因主要有以下几点: 1)签收的偏移量是定时(每5秒/次)同步到服务端的。 2)为保证消息不丢失,SDK每次提交的总是队列未签收的最小偏移量
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

(1)RocketMQ无法避免消息重复,原因主要有以下几点:

   1)签收的偏移量是定时(每5秒/次)同步到服务端的。
   2)为保证消息不丢失,SDK每次提交的总是队列未签收的最小偏移量(比如无序消费,offset为1,2,3,4,5 的消息,1,3,4,5消费并已签收,2未签收,签收时最后提交的偏移量将会是2,如果此时,客户端重启,会从2这个位置开始消费)。
   3)有网络交互就不能确保每一次的交互数据都是送达的,为保证数据不丢失就要进行重试,有重试就存在重复的可能。

(2)如果业务对消费重复非常敏感,务必要注意,建议可以采用以下两种方式处理:
   1)业务层面做去重处理,可以根据msgId;如果key字段为业务唯一字段,也可采用key去重。
业务逻辑实现消费幂等,即多次处理同一消息,对业务的影响是幂等的。


相似文档
  • Topic:消息主题,通过 Topic 对不同的业务消息进行分类。 Tag:消息标签,用来进一步区分某个 Topic 下的消息分类,消息队列 RocketMQ 允许消费者按照 Tag 对消息进行过滤,确保消费者最终只消费到他关注的消息类型。
  • RocketMQ 里的一个 Consumer Group 代表一个 Consumer 群组。对于大多数分布式应用来说,一个 Consumer Group 下通常会有多个 Consumer 实例。订阅关系一致指的是同一个 Consumer Group 下所有 Consumer 实例的处理逻辑必须完全一致,一旦订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。
  • 每个消息在业务层面的唯一标识码,要设置到 keys字段,方便将来定位消息丢失问题。服务器会为每个消息创建索引(哈希索引),应用可以通过 topic key来查询该消息内容。由于是哈希索引,请务必保证 key唯一,这样可以避免潜在的哈希冲突。
  • 登录管理台后,首页显示的是:该用户可以管理的集群列表,说明该用户,可以对该集群列表进行管理。 点击“管理”,进入该集群的管理页。
  • 概览界面如下图: 1)表格:显示的是当前集群的统计详情; 2)二维图表: Tag1:TPS监控 : 标识该集群所有broker下,所有topic的生产、消费tps(2min)的时间变化曲线;
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部