BPServiceActor详解

This commit is contained in:
LingZhaoHui 2024-07-21 23:35:17 +08:00
parent c19d505ff5
commit 916d27559e
Signed by: zeekling
GPG Key ID: D96E4E75267CA2CC

View File

@ -9,7 +9,27 @@ BPServiceActor 主要在DataNode中用于和NameNode沟通的类。主要功能
# 核心功能
## 预注册
BPServiceActor的入口函数为start函数当前类本身为runnable接口的实现类所以在start函数里面新建了BPServiceActor线程并且将其启动
所以其真实的启动函数为run()
在run函数里面主要做了连接NameNode并且注册当前DataNode的事。
## 与NameNode握手
首先要做的就是和NameNode建立连接核心代码如下
```java
bpNamenode = dn.connectToNN(nnAddr);
```
建立连接之后需要做的就是获取获取版本信息并且检查版本信息如果单次获取失败会进行重试。失败之后每次的重试间隔为5s。
```java
NamespaceInfo nsInfo = retrieveNamespaceInfo();
bpos.verifyAndSetNamespaceInfo(this, nsInfo);
```
到此与NameNode之间的握手结束。开始注册当前的DataNode到NameNode。
## 注册DataNode