一:什么是Nacos?
二:服務心跳與服務注冊原理?
在spring容器啟動的時候,nacos客戶端會進行兩步操作。
- 向nacos服務端發送心跳
- 向nacos服務端注冊當前服務
服務心跳
客戶端在啟動的時候,會開啟一個心跳線程,每隔5s調用一次服務端的心跳接口(Http調用),服務端將心跳請求封裝成一個task,放到線程池中。由服務端的線程池執行task,更新對應服務的最后心跳時間。
服務注冊
客戶端啟動的時候,向服務端發起Http接口調用,調用服務注冊的接口。服務端收到注冊請求,將新的注冊信息和老的服務列表封裝為一個Pair對象,并放入阻塞隊列。服務端在啟動的時候會創建一個線程池,并提交一個任務,這個任務就是循環從阻塞隊列里拿Pair對象,對其解析,更新服務所在的service內部的clusterMap中的服務列表。