五张图告诉你 RocketMQ 为什么不使用 Zookeeper 做注册中心
大家好,我是君哥。
RocketMQ 选择了自己写 NameServer 做注册中心而没有选择 Zookeeper,这是为什么呢?
首先看一下 RocketMQ 的架构,如下图:
RocketMQ 的 Broker 注册到 NameServer 集群,而生产者和消费者则需要从 NameServer 拉取消息。
1 NameServer
1.1 Broker 注册
Broker 启动时,会向 NameServer 发送注册消息,相关的 UML 类图如下:
我们看一下 BrokerOuterAPI 的 registerBrokerAll 方法,代码如下:
//BrokerOuterAPI.java
public List registerBrokerAll(
//省略参数
final boolean compressed) {
final ListregisterBrokerResultList = new CopyOnWriteArrayList
THE END