目录
NameServer 的核心作用
1. Broker 路由管理
2. 服务发现
3. 路由信息同步
4. 轻量级设计
NameServer 的工作流程
1. Broker 注册
2. 心跳机制
3. 路由信息查询
4. 路由信息变更通知
NameServer 的架构特点
1. 无状态设计
2. 高可用性
3. 低延迟
4. 轻量级
NameServer 与 Zookeeper 的区别
总结
NameServer 是 RocketMQ 的核心组件之一,扮演着轻量级的服务发现和路由管理角色。它的主要作用是管理整个 RocketMQ 集群的元数据信息,为 Producer 和 Consumer 提供 Broker 的路由信息,确保消息的正确路由和高效传递。
NameServer 的核心作用
1. Broker 路由管理
-
NameServer 负责维护整个 RocketMQ 集群中所有 Broker 的路由信息。
-
每个 Broker 在启动时会向 NameServer 注册自己的信息,包括:
-
Broker 的地址(IP 和端口)。
-
Broker 负责的 Topic 和消息队列(MessageQueue)信息。
-
Broker 的主从角色(Master/Slave)。
-
-
NameServer 会定期检查 Broker 的健康状态(通过心跳机制),如果某个 Broker 宕机,NameServer 会将其从路由表中移除。
2. 服务发现
-
Producer 和 Consumer 在启动时,会从 NameServer 获取 Broker 的路由信息。
-
通过 NameServer,Producer 和 Consumer 可以知道:
-
哪些 Broker 负责哪些 Topic。
-
每个 Topic 的消息队列分布情况。
-
Broker 的主从关系(用于高可用和故障切换)。
-
3. 路由信息同步
-
NameServer 是无状态的,多个 NameServer 之间不会相互通信。
-
每个 Broker 会向所有的 NameServer 注册自己的信息,确保每个 NameServer 都有完整的路由信息。
-
Producer 和 Consumer 可以从任意一个 NameServer 获取路由信息。