RocketMQ5的顺序消息设计是根据message group粒度分发的吗?[阿里云消息队列MQ]

问题一:RocketMQ5的顺序消息设计是根据message group粒度分发的吗?不同message group会相互阻塞吗?push consumer模式
问题二:RocketMQ 5里的消息组(message group),因为看文档里有这么个说法,不知道RocketMQ 5里顺序消息消费时,同一个queue里不同消息组(不是consumer group),会不会相互阻塞?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 是的,RocketMQ 5 中的顺序消息设计是基于 Message Group 粒度进行分发的。Message Group 是指具有相同 Group ID 的一组消息。在发送顺序消息时,可以为每个消息设置一个 Group ID,使得具有相同 Group ID 的消息被分配到同一个消息队列中。

    RocketMQ 通过以下步骤实现顺序消息的分发:

    1. 消息发送阶段:在发送顺序消息时,应用程序可以为每个消息设置一个 Group ID。RocketMQ 根据 Group ID 来判断消息是否属于同一个 Message Group。若属于同一个 Group,则会保证这组消息按照发送顺序存储在同一个 Broker 上的一个队列中。

    2. 消息消费阶段:在消费顺序消息时,只能使用一个消费者实例来接收该消息队列的消息。该消费者实例将以串行方式按顺序处理消息,确保消息按发送顺序被消费。

  2. 针对问题一的回答:不同group完全不影响。顺序是按照queue粒度的, 类似kafka的partition。
    针对问题二的回答:不会,不同group是不影响的。
    ——此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”