久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Spring Cloud Eureka的示例分析

148次閱讀
沒有評論

共計 1968 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Spring Cloud Eureka 的示例分析,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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 的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計1968字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 临潭县| 五原县| 介休市| 浦北县| 乌什县| 繁峙县| 龙岩市| 舟山市| 侯马市| 蒲江县| 凌海市| 武胜县| 长兴县| 青铜峡市| 孝昌县| 泰州市| 新和县| 揭阳市| 武功县| 开化县| 延津县| 平果县| 台东市| 拜城县| 商河县| 济源市| 冕宁县| 湟源县| 双辽市| 漳平市| 汪清县| 隆子县| 特克斯县| 永宁县| 镇巴县| 安福县| 汪清县| 澄迈县| 五莲县| 托里县| 河源市|