您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Spring Cloud Eureka的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Eureka 是Spring Cloud Netflix 微服務套件中的一部分,它基于Netflix Eureka做了二次開發,主要負責完成微服務架構中的服務治理功能。
Eureka 基礎架構三個核心要素
1:服務注冊中心
2:服務提供者
3:服務消費者
服務治理主要分為:
1:服務注冊:
在服務治理框架中,通常都會構建一個服務注冊中心,每個服務提供者需要向注冊中心,登記自己的注冊信息。比如IP,端口號,版本號,服務名,通信協議等等附加信息告知注冊中心,注冊中心會根據服務名,進行分類服務清單。例如下圖:
eureka維護分類服務清單,是通過一個雙層Map, 第一層Map的key就是服務名,例如上圖的HELLO-SERVICE,第二層的Key就是具體的實例信息,例如上圖的DLBOOH........:hello-service:8081
2:服務發現
由于在服務治理框架下運作程序,服務間的調用不在是通過指定具體的實例地址來實現,服務間的調用通過服務名來調用,例如:http://hello-service:8081/hello。所以當服務調用方 想要調用服務提供方的接口時,服務調用方是不知道服務提供方的具體實例地址的, 因此調用方需要向注冊中心Eureka咨詢服務,并獲取所有服務的實例清單。例如:現有服務B想要調用服務A,服務B就需要向注冊中心發起請求獲取服務A的實例清單,注冊中心返回服務A的實例清單,然后服務B會從清單中以某種策略輪詢訪問清單中的的實例,實現負載均衡的效果 訪問方式可以通過 Ribbon。
實際生產項目中,不會在每一次請求中都獲取服務列表清單,這樣做效率低下。實際場景中緩存和服務剔除等機制也會有一些不同的實現方式
3:服務同步
當Eureka實現高可用后,服務提供者可分別注冊到集群中的不同服務注冊中心上,也就是說 它們的信息分別被不同的注冊中心維護,此時由于服務中心互相注冊為服務(高可用),當服務提供者發送注冊請求到一個服務注冊中心時,它會將該請求轉發同步給集群中的其他注冊中心,從而實現服務注冊中心的服務同步。通過服務同步,兩個服務提供者的服務信息就可以通過這兩臺服務注冊中心中的任意一臺獲取到
4:服務續約
在注冊完服務之后,服務提供者會維護一個心跳用來持續告訴Eureka“我還活著”,以防止Eureka的剔除服務將該服務從列表清單中排除出去,我們稱該操作為服務續約
關于服務續約有兩個重要的屬性,
##用于定義服務續約任務的調用間隔時間,默認為30秒
eureka.instance.lease-renewal-interval-in-seconds=30
##參數用于定義服務失效的時間,默認為90秒
eureka.instance.lease-expiration-duration-in-seconds=90
5:獲取服務
當服務消費者程序啟動時,它會發送一個Rest請求給注冊中心,來獲取上面注冊的服務清單,為了性能考慮,Eureka會維護一份只讀的服務清單來返回給客戶端,同時該緩存清單會每隔30秒更新一次。
獲取服務是服務消費者的基礎,所以必須確保eureka.client.fetch-registry=true 默認為true,若希望修改緩存清單的更新時間,可以通過eureka.client.registry-fetch-interval-seconds=30 進行修改,默認30秒,參數單位秒
6:服務調用
獲取服務清單后,通過服務名可以獲取實例的名和實例的元數據(ip,port等等)利用Ribbon實現輪詢方式調用服務提供方。
7: 服務下線
當服務下線后,正常情況下 我們是不希望,服務消費方繼續調用已經下線的服務的,所以再服務提供方正常關閉時,會觸發一個服務下線的REST請求,告訴Eureka “我要下線了”。Eureka收到請求后,會將此服務設置為(DOWN),并將此消息廣播到出去,更新緩存清單。
8:服務中心的失效剔除
當服務非正常關閉時,比如機器Down了,斷電,內存溢出,網絡故障等等。這時候是不會觸發服務下線的REST的請求,為了將這些已經無法提供的服務剔除,Eureka Server會在啟動時,創建一個定時任務,默認每隔60秒將清單中超時沒有續約的剔除。
關于“Spring Cloud Eureka的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。