java在線學習-NacosServiceRegistry的實現

魯班學院java源碼學習java

在NacosServiceRegistry.registry方法中,調用了Nacos Client SDK中的nameingService.registerInstance完成服務的註冊。服務器

java在線學習-NacosServiceRegistry的實現

再來看一下namingService.registerInstance()方法的實現,主要邏輯以下:ide

經過beatReactor.addBeatInfo建立心跳信息實現健康檢測,Nacos Server必需要保證註冊的服務實例是健康的,而心跳檢測就是服務健康檢測的手段。學習

serverProxy.registerService實現服務註冊。線程

java在線學習-NacosServiceRegistry的實現

關於服務註冊的邏輯咱們後續分析,這裏重點關注beatReactor.addBeatInfo實現的心跳機制,代碼以下:server

java在線學習-NacosServiceRegistry的實現

從上述代碼看,所謂的心跳機制就是客戶端經過schedule定時向服務端發送一個數據包,而後啓動一個線程不斷檢測服務端的迴應,若是在設定時間內沒有收到服務端的迴應,則認爲服務器出現了故障。Nacos服務端會根據客戶端的心跳包不斷更新服務的狀態。blog

相關文章
相關標籤/搜索