java在线学习-NacosServiceRegistry的实现

鲁班学院java源码学习

在NacosServiceRegistry.registry方法中,调用了Nacos Client SDK中的nameingService.registerInstance完成服务的注册。

java在线学习-NacosServiceRegistry的实现

再来看一下namingService.registerInstance()方法的实现,主要逻辑如下:

通过beatReactor.addBeatInfo创建心跳信息实现健康检测,Nacos Server必须要保证注册的服务实例是健康的,而心跳检测就是服务健康检测的手段。

serverProxy.registerService实现服务注册。

java在线学习-NacosServiceRegistry的实现

关于服务注册的逻辑我们后续分析,这里重点关注beatReactor.addBeatInfo实现的心跳机制,代码如下:

java在线学习-NacosServiceRegistry的实现

从上述代码看,所谓的心跳机制就是客户端通过schedule定时向服务端发送一个数据包,然后启动一个线程不断检测服务端的回应,如果在设定时间内没有收到服务端的回应,则认为服务器出现了故障。Nacos服务端会根据客户端的心跳包不断更新服务的状态。

猜你喜欢

转载自blog.51cto.com/14873808/2540531