Spring Cloud學習之五 Eureka詳細分析

 目錄

一、基礎架構

二、服務治理機制

三、分析源碼

四、配置詳細分析

五、跨平臺支持


一、基礎架構

Eureka服務治理基礎架構包含三個核心要素:

服務註冊中心:Eureka提供的服務端,提供服務註冊和服務發現的功能。

服務提供者:提供服務的應用,可以將自己提供的服務註冊到eureka,以供其他服務區調用。

服務消費者:消費者應用從註冊中心獲取服務列表,找到自己所需要調用的服務。

 

二、服務治理機制

(一)、服務提供者

              1、服務註冊:當服務提供者啓動時會通過REST請求的方式將自己註冊到EurekaServer上,並帶上服務自身的一些元數據。而EurekaServer接收到REST請求後,將元數據存儲在雙層Map中,第一層key爲服務名,第二層key爲具體服務的實例名。

              2、服務同步:如果將兩個服務註冊到兩個不同的註冊中心時,設置註冊中心之間相互註冊爲服務,當服務提供者向其中一個註冊中心發送請求時,會轉發到集羣中相連的另一個註冊中心,這樣就可以實現服務同步。

              3、服務續約:註冊完成後,服務提供者會維護一個心跳用來持續告訴EurekaServer自己的狀態,防止EurekaServer將自己剔除,此操作稱爲服務續約。服務續約的兩個重要屬性:

#定義服務續約任務的調用時間間隔
eureka.instance.lease-renewal-interval-in-seconds = 30
#服務失效時間
eureka.instance.lease-expireation-duration-in-seconds=90

 (二)、服務消費者

               1、獲取服務列表:當服務消費者啓動時,會發起rest請求到註冊中心,獲取服務清單(爲了性能考慮,清單隻可讀)。緩存清單更新時間默認爲90秒,可通過eureka.client.registry-fetch-interval-seconds=30來設置。

               2、服務調用:通過服務名獲取元數據,根據自己需求調用哪個實例。(Region和Zone概念)

               3、服務下線:如果服務正常關閉的話,會通過rest請求通知註冊中心。

(三)、服務註冊中心

              1、失效剔除:EurekaServer啓動時,會默認開啓一個定時任務,默認每隔60秒將清單中超過(90秒)沒有續約的服務剔除。

              2、自我保護:容錯機制、斷路器、請求重試等等

三、分析源碼

(待補充)

四、配置詳細分析

(一)、服務註冊類配置:可通過org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean查看源碼或者官方文檔進行查看。

(二)、註冊中心指定:通過eureka.client.service-url.defaultZon=http://localhost:1111/eureka/

屬性設置註冊中心地址,多個註冊中心可以用逗號分隔。若需要安全驗證時可以http://<username>:<password>@localhost:1111/eureka/來配置,username爲用戶名,password爲密碼。

(三)、其他配置:

org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean 查看該類中的常量既發現可以默認配置。

(四)、服務實例配置:

org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean 查看該類中的常量既發現可以默認配置。

五、跨平臺支持

Eureka不僅支持Java客戶端,還支持其他語言平臺,例如 eureka-js-client、python-eureka等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章