消息队列

消息队列原理以及各种消息中间件
帅旋
关注
充电
IT宅站长,技术博主,共享单车手,全网id:arthinking。

RocketMQ架构解析

发布于 2021-10-17 | 更新于 2024-02-27

1. RocketMQ技术架构

RocketMQ的架构主要分为四部分,如下图所示:

image-20211017212148402

  • Producer:消息生产者,支持集群方式部署;
  • Consumer:消息消费者,支持集群方式部署,支持pull,push模式获取消息进行消费,支持集群和广播方式消费;
  • NameServer:Topic路由注册中心,类似于Dubbo中的zookeeper,支持Broker的动态注册与发现;
    • 提供心跳检测机制,检查Broker是否存活;
    • 接收Broker集群的注册信息,作为路由信息的基本数据;
    • NameServier各个实例不相互进行通信,每个NameServer都保存了一份完整的路由信息,这与zookeeper有所区别,不用作复杂的节点数据同步与选主过程;
  • BrokerServer:主要负责消息的存储、投递和查询,以及服务高可用保证。BrokerServer包含以下几个重要的子模块:
    • Remoting Module:整个Broker的实体,负责处理来自clients端的请求;
    • Client Manager:负责管理客户端(Producer/Consumer)和维护Consumer的Topic订阅信息;
    • StoreService:提供方便简单的API接口处理消息存储到物理硬盘和查询功能;
    • HA Service:高可用服务,提供Master Broker 和 Slave Broker之间的数据同步功能;
    • Index Service:根据特定的Message key对投递到Broker的消息进行索引服务,以提供消息的快速查询。

image-20211017212222438

References

本文作者: 帅旋

本文链接: https://www.itzhai.com/columns/mq/rocketmq/architecture.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。