RocketMQ5.0–路由中心NameServer
一、NameServer概览
NameServer是RocketMQ的注册中心,是消息存储Broker、生产者、消费者沟通的桥梁。NameServer集群之间是相互独立的,Broker启动时向所有NameServer注册中心注册。通过DLedger构建NameServer集群,实现如主从切换等功能。
启动NameServer:启动注册中心,维护路由信息、周期检测Broker发送的心跳包
Broker注册:Broker启动时向所有NameServer发送心跳包、长连接NameServer
Broker删除:NameServer启动定时任务检测Broker是否发送心跳包
生产者发送消息:创建Topic时,向NameServer获取Broker路由信息;
发送消息时,直接向Broker发送消息并消息ACK确认
消费者消费消息:根据PUSH/PULL模式消费消息,消费ACK确认
二、启动NameServer
NameServer启动入口是org.apache.rocketmq.namesrv.NamesrvStartup#main,该方法调用链如下图。核心方法是:org.apache.rocketmq.namesrv.NamesrvController#initialize。