Eureka核心知識點
一、Eureka特性
1.當註冊中心掛了,客戶端之間依然可以通過原有的註冊表進行調用;註冊中心重啟後,客戶端會繼續註冊進來
2.當服務提供者掛了,在關閉自我保護的情況下,註冊中心在規定時間(默認是60s)內移除客戶端;
關閉Eureka註冊中心的自我保護模式,配置如下:
eureka:
server:
enable-self-preservation: false
eviction-interval-timer-in-ms: 60000 # 單位毫秒
註意不推薦在PRD環境中使用。
3.自我保護模式
自我保護模式原理如果在15分鐘內超過85%的客戶端節點都沒有正常的心跳,那麽Eureka就認為客戶端與註冊中心出現了網絡故障(比如網絡故障或頻繁的啟動關閉客戶端),Eureka Server自動進入自我保護模式。不再剔除任何服務,當網絡故障恢復後,該節點自動退出自我保護模式。
二、Eureka主要功能
1、Register:服務註冊
當Eureka客戶端向Eureka Server註冊時,它提供自身的元數據,比如IP地址、端口,運行狀況指示符URL,主頁等
2、Renew:服務續約
Eureka客戶會每隔30秒發送一次心跳來續約。 通過續約來告知Eureka Server該Eureka客戶仍然存在,沒有出現問題。 正常情況下,如果Eureka Server在90秒沒有收到Eureka客戶的續約,它會將實例從其註冊表中刪除。 建議不要更改續約間隔
3、Cancel:服務下線
Eureka客戶端在程序關閉時向Eureka服務器發送取消請求。 發送請求後,該客戶端實例信息將從服務器的實例註冊表中刪除。該下線請求不會自動完成,它需要調用以下內容:
DiscoveryManager.getInstance().shutdownComponent()
4、Fetch Registries:獲取註冊列表信息
Eureka客戶端從服務器獲取註冊表信息,並將其緩存在本地。客戶端會使用該信息查找其他服務,從而進行遠程調用。該註冊列表信息定期(每30秒鐘)更新一次。每次返回註冊列表信息可能與Eureka客戶端的緩存信息不同, Eureka客戶端自動處理。如果由於某種原因導致註冊列表信息不能及時匹配,Eureka客戶端則會重新獲取整個註冊表信息。 Eureka服務器緩存註冊列表信息,整個註冊表以及每個應用程序的信息進行了壓縮,壓縮內容和沒有壓縮的內容完全相同。Eureka客戶端和Eureka 服務器可以使用JSON / XML格式進行通訊。在默認的情況下Eureka客戶端使用壓縮JSON格式來獲取註冊列表的信息
5、Eviction 服務剔除
在默認的情況下,當Eureka客戶端連續90秒沒有向Eureka服務器發送服務續約,即心跳,Eureka服務器會將該服務實例從服務註冊列表刪除,即服務剔除
Eureka核心知識點