写点什么

RocketMQ 整体架构与基本概念

作者:周杰伦本人
  • 2022 年 8 月 10 日
    加拿大
  • 本文字数:1023 字

    阅读完需:约 3 分钟

RocketMQ 整体架构与基本概念

RocketMQ 的整体架构

RocketMQ 部署架构主要分为四个部分:


  • Producer:消息生产者的角色,主要负责把消息发送到 Broker,支持分布式集群方式部署。

  • Consumer:消息消费者的角色,主要负责从 Broker 订阅消息消费,支持分布式集群方式部署。

  • Broker:消息存储的角色,主要负责消息存储,投递和查询,以及服务高可用保证,支持分布式集群方式部署。

  • NameServer:服务管理的角色,主要负责管理 Broker 集群的路由信息,支持分布式集群方式部署。


NameServer 是 Topic 路由注册中心,类似于 Zookeeper,支持 Broker 的动态注册与发现


主要功能有:


  • 服务注册:NameServer 接收 Broker 集群的注册信息,保存下来作为路由信息的基本数据,提供心跳检测机制,检查 Broker 是否还存活

  • 路由信息管理:NameServer 保存 Broker 集群的路由信息,提供客户端查询 Broker 的队列信息,Producer 和 Consumer 通过 NameServer 可以知道 Broker 集群的路由信息,从而进行消息的投递和消费。

RocketMQ 的基本概念

Message:消息,系统所传输信息的物理载体,生产和消费数据的最小单位。每条消息必须属于一个 Topic,RockeMQ 中每条消息拥有唯一的 MessageID,且可以携带具有业务标识的 key


Topic:主题,表示一类消息的集合,每个主题都包含若干条消息,每条消息都只能属于一个主题,Topic 是 RocketMQ 进行消息订阅的基本单位。


Queue:消息队列,组成 Topic 的最小单位。默认情况下一个 Topic 对应多个 Queue,Topic 是逻辑概念,Queue 是物理存储,在 Consumer 消费 Topic 消息时底层实际拉取 Queue 的消息。


Tag:为消息设置的标志,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。消费者可以根据 Tag 实现不同子主题的不同消费的处理逻辑


UserProperties:用户自定义的属性集合,属于 Message 一部分


ProducerGroup:同一类 Producer 的集合,这类 Producer 发送同一类消息并发送逻辑一致,如果发送的是服务消息,并且原始生产者在发送之后崩溃,则 Broker 服务器会联系同一生产者组的其他生产者实例提交或回溯消费


ConsumerGroup:同一类 Consumer 的集合,这类 Consumer 通常消费同一类消息并且消费逻辑一致。消费者组的消费者实例必须订阅完全相同的 Topic。消费者组似的消息消费方面实现负载均衡和容错机制变得很容易。


好了,这就是 RocketMQ 的整体架构和基本概念了,有说的不对的或者不准确的地方欢迎大家指正,不要忘了给我点个赞哦,如果你有不同的想法,可以评论留言哦。谢谢大家伙儿,我们下篇文章见面~~

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020.02.29 加入

公众号《盼盼小课堂》,多平台优质博主

评论

发布
暂无评论
RocketMQ整体架构与基本概念_8月月更_周杰伦本人_InfoQ写作社区