开发者社区 > 云原生 > 云消息队列 > 正文

RocketMQ5的顺序消息设计是根据message group粒度分发的吗?

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

展开
收起
游客6poszk7nfmalm 2023-07-23 22:10:20 117 0
2 条回答
写回答
取消 提交回答
  • 是的,RocketMQ 5 中的顺序消息设计是基于 Message Group 粒度进行分发的。Message Group 是指具有相同 Group ID 的一组消息。在发送顺序消息时,可以为每个消息设置一个 Group ID,使得具有相同 Group ID 的消息被分配到同一个消息队列中。

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

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

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

    2023-07-28 09:48:25
    赞同 展开评论 打赏
  • 针对问题一的回答:不同group完全不影响。顺序是按照queue粒度的, 类似kafka的partition。
    针对问题二的回答:不会,不同group是不影响的。
    ——此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-07-23 22:20:52
    赞同 展开评论 打赏

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

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载