Skip to content

Commit 3bca128

Browse files
committed
Update Java Notes
1 parent 68e76ef commit 3bca128

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

Frame.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4504,7 +4504,7 @@ NameServer 是一个简单的 Topic 路由注册中心,支持 Broker 的动态
45044504

45054505
NameServer 主要包括两个功能:
45064506

4507-
* Broker 路由管理,NameServer 接受 Broker 集群的注册信息,并保存下来作为路由信息的基本数据,提供**心跳检测机制**检查 Broker 活性,每 10 秒清除一次两小时没有活跃的 Broker
4507+
* Broker 路由管理,NameServer 接受 Broker 集群的注册信息,保存下来作为路由信息的基本数据,提供**心跳检测机制**检查 Broker 是否还存活,每 10 秒清除一次两小时没有活跃的 Broker
45084508
* 路由信息管理,每个 NameServer 将保存关于 Broker 集群的整个路由信息和用于客户端查询的队列信息,然后 ProducerConumser 通过 NameServer 就可以知道整个 Broker 集群的路由信息,从而进行消息的投递和消费
45094509

45104510
NameServer 特点:
@@ -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

55945625
DefaultRequestProcessor REGISTER_BROKER 方法解析:

0 commit comments

Comments
 (0)