咨询下,rocketmq 重置消费位点过程中,有可能导致重复消费吗?

咨询下,rocketmq 重置消费位点过程中,有可能导致重复消费吗?

展开
收起
滴滴滴~ 2023-03-06 16:43:08 1136 分享 版权
5 条回答
写回答
取消 提交回答
  • 坚持这件事孤独又漫长。
    • 在 RocketMQ 中,如果消费者使用的是拉消息模式,重置消费位点的过程中是有可能导致重复消费的。消费者在拉取消息时,会从服务器中指定的消息消费位点开始拉取消息,然后逐个消费这些消息。如果在消费某条消息时出现异常,消费者有可能把当前消费的消息消费掉后,才抛出异常。此时,RocketMQ 会认为该条消息已经消费成功,将消费进度推进到下一条消息上。如果此时消费者重置了消费位点,会重新开始消费之前已经消费成功的消息,从而导致消息重复消费的情况。

    • 为了避免重复消费,建议使用推送消息模式,或者在拉取消息时使用消费消息的确认机制(ACK),确保消息已经被消费成功后再进行推进消费位点,以避免因为消费异常而导致的消息重复消费。同时,在重置消费位点时,也可以通过使用幂等消费的方式,保证消息消费的幂等性,从而避免消息重复消费的出现。

    2023-03-07 10:32:34
    赞同 展开评论
  • 十分耕耘,一定会有一分收获!

    楼主你好,MQ重复消费是指同一个应用的多个实例收到相同的消息,或者同一个实例收到多次相同的消息,若消费者逻辑未做幂等处理,就会造成重复消费。

    2023-03-07 10:32:24
    赞同 1 展开评论
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    MQ会把你的这批消费放到当前消费组的重试队列中,然后过一段时间重试队列中的消息会再次发送给消费者

    2023-03-07 08:54:51
    赞同 展开评论
  • 重置消费位点后消费者将直接从重置后的位点开始消费,重置后的历史消息需要重新读写,造成重复消费

    2023-03-06 17:32:35
    赞同 展开评论
  • 向前重置位点的话,这段时间的消息就会被重复消费。此答案整理自钉群“群2-Apache RocketMQ 中国”

    2023-03-06 16:49:06
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。

热门讨论

热门文章

还有其他疑问?
咨询AI助理