RocketMq-NameServer学习

103 阅读1分钟
存储方法入口
处理RequestCode.REGISTER_BROKER 
 -> RouteInfoManager#registerBroker 
 -> ReentrantReadWriteLock.writeLock // 读写锁
存储Broker、Topic路由信息
// 存储Topic下的队列信息,包括brokerName
HashMap<String/* topic */, List<QueueData>> topicQueueTable

// 根据brokerName查询Broker信息,包含brokerAddress
HashMap<String/* brokerName */, BrokerData> brokerAddrTable

// 当前集群下有哪些brokername构成
HashMap<String/* clusterName */, Set<String/* brokerName */>> clusterAddrTable

// 根据brokerAddress,查询live信息
HashMap<String/* brokerAddr */, BrokerLiveInfo> brokerLiveTable

特点

无状态:不会持久化Broker、Topic的信息,都存储在内存中

互不通信:多个NameServer互不通信,broker启动后向所有NameServer都注册,broker启动需要知道所有的NameServer地址

独立性:不依赖其它框架