共计 609 个字符,预计需要花费 2 分钟才能阅读完成。
简介
RocketMQ是一款分布式消息中间件,其设计基于主题的发布与订阅模式。功能包括消息发送、消息存储、消息消费,参与的基本组件主要包括:消息发送者、消息服务器、消息消费、路由发现,分别对应 RocketMQ 集群中包含的 4 个模块:Producer、Broker、Consumer,Namesrv。
- Producer: 消息生产者,负责生产消息。
- Broker: 消息服务器,集群最核心模块,主要负责 Topic 消息存储、消费者的消费位置管理(消费进度)。
- Consumer: 消息消费者,负责消费消息。
- Namesrv: 路由发现,存储当前集群所有 Brokers 信息、Topic 跟 Broker 的对应关系。
架构
集群工作流程如下:
- 启动 NameServer,作为路由控制中心,等待 Broker、Produer、Consumer 连接。
- Broker 启动,向所有 NameServer 注册,注册信息包含当前 Broker 信息 (IP+ 端口等) 以及所有 topic 信息。注册成功后,namesrv 集群中就有 Topic 跟 Broker 的映射关系,并定时发送心跳包。
- Producer 发送消息之前先从 NameServer 获取 Broker 服务器地址列表,然后根据负载算法从列表中选择一台消息服务器进行消息发送。
- Consumer 跟 Producer 类似,先从 NameServer 获取当前订阅 Topic 存在哪些 Broker 上,然后直接跟 Broker 建立连接通道,开始消费消息。
正文完