eureka

2022-08-05 13:39:16 字數 984 閱讀 5325

1.eureka的註冊

客戶端首先會將配置資訊封裝到instanceinforeplicator中,然後啟動執行緒檢測該配置是否更新(第一次也算更新),這樣就會呼叫discoveryclient.register();方法進行服務註冊。同時在原始碼中也會有一個finally讓服務定期去註冊一次

服務端會將配置資訊封裝到concurrenthashmap中,這是一個雙層map集合,第一層key是服務名字,value是map>,第二層key是ip地址,lease是對instanceinfo進行了封裝,instanceinfo中包含了客戶端的

埠等等資訊。

2.eureka的快取機制

對客戶端來說,需要服務的時候不會直接去訪問eureka服務,他會在註冊的時候或者是服務發生變化的時候將快取放入本地,先調本地的服務資訊(存在一個定時任務去定期拉eureka服務的服務列表)。

對eureka服務來說,服務註冊的時候,會將資訊放入concurrenthashmap中,但是客戶端來拉列表不會從這裡拉,而是會去responsecache中拉,responsecache又分為兩種,一種是readwritemap,另一種是readonlymap,這麼做是為了讀寫分離

readwritemap與concurrenthashmap實時的,readonlymap是從readwritemap中獲取的,他不是實時的。

3.eureka的心跳續約服務

客戶端會預設30秒向eureka服務端傳送心跳,如果eureka服務在90秒後還沒有接收心跳就會停止該服務

4.eureka服務取消

服務關機的時候會呼叫shutdown,通知eureka服務下線

5.自我保護機制

當心跳小於80%就會啟動自我保護機制,就會將所有的服務保持不動不會剔除任何服務,這是為了避免一個網路發生波動,eureka服務將所有的服務全部關掉。

SpringCloud eureka

參考文章 eureka的後設資料有兩種,分別為標準後設資料和自定義後設資料。 自定義後設資料 自定義後設資料可以使用eureka insta...

Dubbo與Eureka

content dubbo springcloud 服務註冊中心 zookeeper spring cloud netflix eureka...

springcloud Eureka yml

server port 6001 服務埠 eureka instance hostname localhost eureka服務端的例項名稱...