File tree Expand file tree Collapse file tree 1 file changed +32
-1
lines changed
Expand file tree Collapse file tree 1 file changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -4504,7 +4504,7 @@ NameServer 是一个简单的 Topic 路由注册中心,支持 Broker 的动态
45044504
45054505NameServer 主要包括两个功能:
45064506
4507- * Broker 路由管理,NameServer 接受 Broker 集群的注册信息,并保存下来作为路由信息的基本数据 ,提供** 心跳检测机制** 检查 Broker 活性 ,每 10 秒清除一次两小时没有活跃的 Broker
4507+ * Broker 路由管理,NameServer 接受 Broker 集群的注册信息,保存下来作为路由信息的基本数据 ,提供** 心跳检测机制** 检查 Broker 是否还存活 ,每 10 秒清除一次两小时没有活跃的 Broker
45084508* 路由信息管理,每个 NameServer 将保存关于 Broker 集群的整个路由信息和用于客户端查询的队列信息,然后 Producer 和 Conumser 通过 NameServer 就可以知道整个 Broker 集群的路由信息,从而进行消息的投递和消费
45094509
45104510NameServer 特点:
@@ -5589,6 +5589,37 @@ NettyRemotingAbstract#processResponseCommand:处理响应的数据
55895589
55905590
55915591
5592+ #### 路由信息
5593+
5594+ ##### 信息管理
5595+
5596+ RouteInfoManager 类负责管理路由信息,NamesrvController 的构造方法中创建该类的实例对象,管理服务端的路由数据
5597+
5598+ ```java
5599+ public class RouteInfoManager {
5600+ // Broker 两个小时不活跃,视为离线,被定时任务删除
5601+ private final static long BROKER_CHANNEL_EXPIRED_TIME = 1000 * 60 * 2 ;
5602+ // 读写锁,保证线程安全
5603+ private final ReadWriteLock lock = new ReentrantReadWriteLock ();
5604+ // 主题队列数据,一个主题对应多个队列
5605+ private final HashMap<String / * topic */ , List<QueueData > > topicQueueTable;
5606+ // Broker 数据列表
5607+ private final HashMap<String / * brokerName */ , BrokerData > brokerAddrTable;
5608+ // 集群
5609+ private final HashMap<String / * clusterName */ , Set<String / * brokerName */ >> clusterAddrTable;
5610+ // Broker 存活信息
5611+ private final HashMap<String / * brokerAddr */ , BrokerLiveInfo > brokerLiveTable;
5612+ // 服务过滤
5613+ private final HashMap<String / * brokerAddr */ , List<String > /* Filter Server */ > filterServerTable;
5614+ }
5615+ ```
5616+
5617+
5618+
5619+ ***
5620+
5621+
5622+
55925623##### 路由注册
55935624
55945625DefaultRequestProcessor REGISTER_BROKER 方法解析:
You can’t perform that action at this time.
0 commit comments