溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Eureka在springcloud中怎么使用

發(fā)布時間:2022-01-18 11:02:26 來源:億速云 閱讀:162 作者:iii 欄目:軟件技術(shù)

這篇文章主要介紹“Eureka在springcloud中怎么使用”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Eureka在springcloud中怎么使用”文章能幫助大家解決問題。

什么是服務(wù)發(fā)現(xiàn)與服務(wù)注冊

簡單的來說就是一個微服務(wù)要調(diào)用另一個微服務(wù),就必須知道這個微服務(wù)的地址及端口信息。采用一張注冊表,注冊上線可用的微服務(wù)及相關(guān)信息,微服務(wù)則從注冊表上查找所需的其它微服務(wù)的相關(guān)信息。有兩種主要的服務(wù)發(fā)現(xiàn)模式:客戶端服務(wù)發(fā)現(xiàn)(client-side discovery)和服務(wù)器端服務(wù)發(fā)現(xiàn)(server-side discovery)。

客戶端發(fā)現(xiàn)

Eureka在springcloud中怎么使用

服務(wù)端服務(wù)發(fā)現(xiàn)

當(dāng)發(fā)送請求到一個service的時候,客戶端發(fā)送請求到一個router,這個router是在一個已知的地址上運(yùn)行的。router查詢service registry(可能在這個router中實(shí)現(xiàn)), 然后把請求發(fā)送到可用的service實(shí)例。如下所示: 

Eureka在springcloud中怎么使用

服務(wù)發(fā)現(xiàn)組件的功能

服務(wù)注冊表 

服務(wù)注冊表是一個記錄當(dāng)前可用服務(wù)實(shí)例的網(wǎng)絡(luò)信息的數(shù)據(jù)庫,是服務(wù)發(fā)現(xiàn)機(jī)制的核心。服務(wù)注冊表提供查詢API和管理API,使用查詢API獲得可用的服務(wù)實(shí)例,使用管理API實(shí)現(xiàn)注冊和注銷;

服務(wù)注冊 

服務(wù)注冊:服務(wù)啟動時,將服務(wù)的網(wǎng)絡(luò)地址注冊到服務(wù)注冊表中;

健康檢查 

服務(wù)發(fā)現(xiàn)組件會通過一些機(jī)制定時檢測已注冊的服務(wù),如果發(fā)現(xiàn)某服務(wù)無法訪問了(可能是某幾個心跳周期后),就將該服務(wù)從服務(wù)注冊表中移除。

服務(wù)發(fā)現(xiàn)組件:Eureka

Eureka是客戶端發(fā)現(xiàn)類型的服務(wù)發(fā)現(xiàn)模式

Eureka來自生產(chǎn)環(huán)境

Spring Cloud對Eureka支持很好

Eureka在springcloud中怎么使用

Eureka在springcloud中怎么使用

上圖是來自Eureka官方的架構(gòu)圖,大致描述了Eureka集群的工作過程。 

Eureka有兩個概念,區(qū)域(Region)與可用區(qū)(Zone),不太理解,先抄過來占個位置。

區(qū)域(Region):

AWS云服務(wù)在全球不同的地方都有數(shù)據(jù)中心,比如北美、南美、歐洲和亞洲等。與此對應(yīng),根據(jù)地理位置我們把某個地區(qū)的基礎(chǔ)設(shè)施服務(wù)集合稱為一個區(qū)域。通過AWS的區(qū)域,一方面可以使得AWS云服務(wù)在地理位置上更加靠近我們的用戶,另一方面使得用戶可以選擇不同的區(qū)域存儲他們的數(shù)據(jù)以滿足法規(guī)遵循方面的要求。美東(北佛吉尼亞)、美西(俄勒岡)、美西(北加利佛尼亞)、歐洲(愛爾蘭)、亞太(新加坡)、亞太(東京)等。每個區(qū)域都有自己對應(yīng)的編碼,如:編碼對應(yīng)

可用區(qū)(Zone):

AWS的每個區(qū)域一般由多個可用區(qū)(AZ)組成,而一個可用區(qū)一般是由多個數(shù)據(jù)中心組成。AWS引入可用區(qū)設(shè)計(jì)主要是為了提升用戶應(yīng)用程序的高可用性。因?yàn)榭捎脜^(qū)與可用區(qū)之間在設(shè)計(jì)上是相互獨(dú)立的,也就是說它們會有獨(dú)立的供電、獨(dú)立的網(wǎng)絡(luò)等,這樣假如一個可用區(qū)出現(xiàn)問題時也不會影響另外的可用區(qū)。在一個區(qū)域內(nèi),可用區(qū)與可用區(qū)之間是通過高速網(wǎng)絡(luò)連接,從而保證有很低的延時。AWS的區(qū)域與可用區(qū)的關(guān)系示意如下圖所示:可用區(qū) 

每次當(dāng)用戶需要使用EC2相關(guān)資源的時候,他需要首先選擇目標(biāo)區(qū)域,如美東(北佛杰尼亞)us-east-1。然后在創(chuàng)建EC2實(shí)例的時候,用戶可以選擇實(shí)例所在的可用區(qū),比如可以是us-east-1a或us-east-1b等。可用區(qū)的編碼就是區(qū)域后面順序添加不同的英文字母。

Eureka在springcloud中的使用

Eureka包含兩個組件:Eureka Server 和 Eureka Client。

Eureka Server提供服務(wù)注冊服務(wù),各個節(jié)點(diǎn)啟動后,會在Eureka Server中進(jìn)行注冊,這樣Eureka Server中的服務(wù)注冊表中將會存儲所有可用服務(wù)節(jié)點(diǎn)的信息,服務(wù)節(jié)點(diǎn)的信息可以在界面中直觀的看到。

Eureka Client是一個Java客戶端,用于簡化與Eureka Server的交互,客戶端同時也具備一個內(nèi)置的、使用輪詢(round-robin)負(fù)載算法的負(fù)載均衡器。

在應(yīng)用啟動后,將會向Eureka Server發(fā)送心跳(默認(rèn)周期為30秒)。如果Eureka Server在多個心跳周期內(nèi)沒有接收到某個節(jié)點(diǎn)的心跳,Eureka Server將會從服務(wù)注冊表中把這個服務(wù)節(jié)點(diǎn)移除(默認(rèn)90秒)。

Eureka Server之間將會通過復(fù)制的方式完成數(shù)據(jù)的同步。

Eureka還提供了客戶端緩存的機(jī)制,即使所有的Eureka Server都掛掉,客戶端依然可以利用緩存中的信息消費(fèi)其他服務(wù)的API。

綜上,Eureka通過心跳檢測、健康檢查、客戶端緩存等機(jī)制,確保了系統(tǒng)的高可用性、靈活性和可伸縮性。

資料和源碼來源    

整體代碼結(jié)構(gòu)如下:

Eureka在springcloud中怎么使用

關(guān)于“Eureka在springcloud中怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI