一、springCloud注冊(cè)中心

一、注冊(cè)中心的說明

一 Eureka服務(wù)治理體系

1.1 服務(wù)治理

服務(wù)治理是微服務(wù)架構(gòu)中最為核心和基礎(chǔ)的模塊,它主要用來實(shí)現(xiàn)各個(gè)微服務(wù)實(shí)例的自動(dòng)化注冊(cè)和發(fā)現(xiàn)。

Spring Cloud Eureka是Spring Cloud Netflix微服務(wù)套件中的一部分,它基于Netflix Eureka做了二次封裝。主要負(fù)責(zé)完成微服務(wù)架構(gòu)中的服務(wù)治理功能。

Eureka服務(wù)治理體系如下:


image.png

1.2 服務(wù)注冊(cè)

在服務(wù)治理框架中,通常都會(huì)構(gòu)建一個(gè)注冊(cè)中心,每個(gè)服務(wù)單元向注冊(cè)中心登記自己提供的服務(wù),包括服務(wù)的主機(jī)與端口號(hào)、服務(wù)版本號(hào)、通訊協(xié)議等一些附加信息。注冊(cè)中心按照服務(wù)名分類組織服務(wù)清單,同時(shí)還需要以心跳檢測(cè)的方式去監(jiān)測(cè)清單中的服務(wù)是否可用,若不可用需要從服務(wù)清單中剔除,以達(dá)到排除故障服務(wù)的效果。

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

在服務(wù)治理框架下,服務(wù)間的調(diào)用不再通過指定具體的實(shí)例地址來實(shí)現(xiàn),而是通過服務(wù)名發(fā)起請(qǐng)求調(diào)用實(shí)現(xiàn)。服務(wù)調(diào)用方通過服務(wù)名從服務(wù)注冊(cè)中心的服務(wù)清單中獲取服務(wù)實(shí)例的列表清單,通過指定的負(fù)載均衡策略取出一個(gè)服務(wù)實(shí)例位置來進(jìn)行服務(wù)調(diào)用。

二 Netflix Eureka

2.1 Netflix Eureka介紹

Spirng Cloud Eureka使用Netflix Eureka來實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)。它既包含了服務(wù)端組件,也包含了客戶端組件,并且服務(wù)端與客戶端均采用java編寫,所以Eureka主要適用于通過java實(shí)現(xiàn)的分布式系統(tǒng),或是JVM兼容語言構(gòu)建的系統(tǒng)。Eureka的服務(wù)端提供了較為完善的REST API,所以Eureka也支持將非java語言實(shí)現(xiàn)的服務(wù)納入到Eureka服務(wù)治理體系中來,只需要其他語言平臺(tái)自己實(shí)現(xiàn)Eureka的客戶端程序。目前.Net平臺(tái)的Steeltoe、Node.js的eureka-js-client等都已經(jīng)實(shí)現(xiàn)了各自平臺(tái)的Ereka客戶端組件。

2.2 Eureka服務(wù)端

Eureka服務(wù)端,即服務(wù)注冊(cè)中心。它同其他服務(wù)注冊(cè)中心一樣,支持高可用配置。依托于強(qiáng)一致性提供良好的服務(wù)實(shí)例可用性,可以應(yīng)對(duì)多種不同的故障場(chǎng)景。

Eureka服務(wù)端支持集群模式部署,當(dāng)集群中有分片發(fā)生故障的時(shí)候,Eureka會(huì)自動(dòng)轉(zhuǎn)入自我保護(hù)模式。它允許在分片發(fā)生故障的時(shí)候繼續(xù)提供服務(wù)的發(fā)現(xiàn)和注冊(cè),當(dāng)故障分配恢復(fù)時(shí),集群中的其他分片會(huì)把他們的狀態(tài)再次同步回來。集群中的的不同服務(wù)注冊(cè)中心通過異步模式互相復(fù)制各自的狀態(tài),這也意味著在給定的時(shí)間點(diǎn)每個(gè)實(shí)例關(guān)于所有服務(wù)的狀態(tài)可能存在不一致的現(xiàn)象。

2.3 Eureka客戶端

Eureka客戶端,主要處理服務(wù)的注冊(cè)和發(fā)現(xiàn)。客戶端服務(wù)通過注冊(cè)和參數(shù)配置的方式,嵌入在客戶端應(yīng)用程序的代碼中。在應(yīng)用程序啟動(dòng)時(shí),Eureka客戶端向服務(wù)注冊(cè)中心注冊(cè)自身提供的服務(wù),并周期性的發(fā)送心跳來更新它的服務(wù)租約。同時(shí),他也能從服務(wù)端查詢當(dāng)前注冊(cè)的服務(wù)信息并把它們緩存到本地并周期行的刷新服務(wù)狀態(tài)。

三 服務(wù)注冊(cè)中心

3.1 服務(wù)注冊(cè)中心功能概述

在服務(wù)治理框架中,通常都會(huì)構(gòu)建一個(gè)注冊(cè)中心,每個(gè)服務(wù)單元向注冊(cè)中心登記自己提供的服務(wù),包括服務(wù)的主機(jī)與端口號(hào)、服務(wù)版本號(hào)、通訊協(xié)議等一些附加信息。注冊(cè)中心按照服務(wù)名分類組織服務(wù)清單,同時(shí)還需要以心跳檢測(cè)的方式去監(jiān)測(cè)清單中的服務(wù)是否可用,若不可用需要從服務(wù)清單中剔除,以達(dá)到排除故障服務(wù)的效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容