五张图告诉你 RocketMQ 为什么不使用 Zookeeper 做注册中心

大家好,我是君哥。

RocketMQ 选择了自己写 NameServer 做注册中心而没有选择 Zookeeper,这是为什么呢?

首先看一下 RocketMQ 的架构,如下图:

五张图告诉你 RocketMQ 为什么不使用 Zookeeper 做注册中心插图亿华云

RocketMQ 的 Broker 注册到 NameServer 集群,而生产者和消费者则需要从 NameServer 拉取消息。

1 NameServer

1.1 Broker 注册

Broker 启动时,会向 NameServer 发送注册消息,相关的 UML 类图如下:

五张图告诉你 RocketMQ 为什么不使用 Zookeeper 做注册中心插图1亿华云

我们看一下 BrokerOuterAPI 的 registerBrokerAll 方法,代码如下:

//BrokerOuterAPI.java

public List registerBrokerAll(

//省略参数

final boolean compressed) {

final ListregisterBrokerResultList = new CopyOnWriteArrayList

THE END
Copyright © 2024 亿华云