BPServiceActor详解

This commit is contained in:
LingZhaoHui 2024-07-28 20:16:53 +08:00
parent 916d27559e
commit 043e68d39f
Signed by: zeekling
GPG Key ID: D96E4E75267CA2CC

View File

@ -119,8 +119,28 @@ success = true;
## 发送心跳
在DN和NN建立连接并且注册完成之后会定时向NN发送心跳信息。入口函数为offerService。在这个函数里面控制定时向NN发送心跳。
通过下面类似的方式计算是否需要发送心跳:
```java
final boolean sendHeartbeat = scheduler.isHeartbeatDue(startTime);
```
## 处理NN的命令
心跳信息包含下面信息:
- DataNode名称。
- DataNode文件传输的端口。
- DataNode的所有容量。
- DataNode的可用容量。
- 慢盘等信息上报。
心跳的响应类是HeartbeatResponse。主要包含下面信息
- NN的Ha状态信息。如果NN的主备信息发生变化需要跟新DN中的NN信息。
- NN发送给DN的所有命令。在offerService里面会将这些命令异步执行。
- 滚动重启状态。
- 最新的LeaseId。
如果NN主动要求DN进行块上报会在心跳里面触发块上报。
发送心跳的函数是sendHeartBeat