RocketMQ 集群搭建

Producer : 消息的发送者
Consumer : 消息接受者
Broker : 暂存和传输消息 // 快递
Name Server : 管理Broker // 邮政管理机构
Topic : 区分消息的种类, 一个Producer可以发给一个或者,多个,Topic , 一个Consumer 也可以订阅一个或者多个Topic的消息
Message Queue: 消息队列 吗对Topic 分区,用于并行发送和接受消息 ,相当于一个Topic的子分类
RocketMQ 学习笔记2

Producer 发送消息者,发到 Broker
Producer 先要去问 Name Server ,给他分配一个Broker
实际上 Name Server就是 Broker的管理者
Broker 要上报自己的状态

Consumer也要去问Name Server,从哪个Broker中拿消息

Name Server 里面都是无状态的,Broker对每个 Name Server 都会上报状态,不用担心不同Name Server的同步性。
Producer 之间也没有数据同步 , Consumer之间也没有

关键在 Broker, 分为 Master 和 Slave,Master负责 写, Slave负责读, 意思是
Producer发送的信息,大多发送给Master ,就是写
Consumer 读消息, 大多是从slaver 读

通过 Broker id来分Master 和 slave节点 ,master id 为0 。slave 是 非0
一个 slave只能属于一个master, 一个master可以有多个slave
Master和slave之间要同步数据
Producer 和某个Name Server 节点(随机选择)之间也会进行一个长连接,定期去询问 要传给哪个Broker,获取 Topic 路由信息 ,并向提供该Topic服务的 Master建立 长连接,定时发送心跳。

Consumer 也会和某个Name server节点(随机选择)之间建立长连接,获取 Topic 路由信息 ,并向提供 该Topic服务的Master 和 Slave建立长连接,定时发送心跳。
Consumer既可以从Master订阅,也可以从slave订阅,取决于Broker的配置

集群模式

Name server 、Producer、Consumer 搭建都很简单,直接启动多个就行了。
重要的是Broker集群的搭建。

1、单master模式
2、多master模式
全是master
配置简单,单独一个挂了没关系 ,
3、多master、多slave模式 (异步)

4、多Master 多slave模式(同步)

RocketMQ 学习笔记2

相关文章: