RocketMQ-架构初探

简介

RocketMQ是一款分布式消息中间件,其设计基于主题的发布与订阅模式。功能包括消息发送、消息存储、消息消费,参与的基本组件主要包括:消息发送者、消息服务器、消息消费、路由发现,分别对应RocketMQ集群中包含的4个模块: Producer、Broker、Consumer,Namesrv。

  • Producer: 消息生产者,负责生产消息。
  • Broker: 消息服务器,集群最核心模块,主要负责Topic消息存储、消费者的消费位置管理(消费进度)。
  • Consumer: 消息消费者,负责消费消息。
  • Namesrv: 路由发现,存储当前集群所有Brokers信息、Topic跟Broker的对应关系。

架构

集群工作流程如下:

  1. 启动NameServer,作为路由控制中心,等待Broker、Produer、Consumer连接。
  2. Broker启动,向所有NameServer注册,注册信息包含当前Broker信息(IP+端口等)以及所有topic信息。注册成功后,namesrv集群中就有Topic跟Broker的映射关系,并定时发送心跳包。
  3. Producer发送消息之前先从NameServer获取Broker服务器地址列表,然后根据负载算法从列表中选择一台消息服务器进行消息发送。
  4. Consumer跟Producer类似,先从NameServer获取当前订阅Topic存在哪些Broker上,然后直接跟Broker建立连接通道,开始消费消息。

你可能感兴趣的:(rocketmq,消息队列,java)