亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Spring Cloud Eureka 詳解

 

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

Eureka 基礎(chǔ)架構(gòu)三個(gè)核心要素

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

2:服務(wù)提供者

3:服務(wù)消費(fèi)者

 服務(wù)治理主要分為:

1:服務(wù)注冊(cè):

在服務(wù)治理框架中,通常都會(huì)構(gòu)建一個(gè)服務(wù)注冊(cè)中心,每個(gè)服務(wù)提供者需要向注冊(cè)中心,登記自己的注冊(cè)信息。比如IP,端口號(hào),版本號(hào),服務(wù)名,通信協(xié)議等等附加信息告知注冊(cè)中心,注冊(cè)中心會(huì)根據(jù)服務(wù)名,進(jìn)行分類服務(wù)清單。例如下圖:

Spring Cloud Eureka 詳解

 

eureka維護(hù)分類服務(wù)清單,是通過(guò)一個(gè)雙層Map, 第一層Map的key就是服務(wù)名,例如上圖的HELLO-SERVICE,第二層的Key就是具體的實(shí)例信息,例如上圖的DLBOOH........:hello-service:8081

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

由于在服務(wù)治理框架下運(yùn)作程序,服務(wù)間的調(diào)用不在是通過(guò)指定具體的實(shí)例地址來(lái)實(shí)現(xiàn),服務(wù)間的調(diào)用通過(guò)服務(wù)名來(lái)調(diào)用,例如:http://hello-service:8081/hello。所以當(dāng)服務(wù)調(diào)用方 想要調(diào)用服務(wù)提供方的接口時(shí),服務(wù)調(diào)用方是不知道服務(wù)提供方的具體實(shí)例地址的, 因此調(diào)用方需要向注冊(cè)中心Eureka咨詢服務(wù),并獲取所有服務(wù)的實(shí)例清單。例如:現(xiàn)有服務(wù)B想要調(diào)用服務(wù)A,服務(wù)B就需要向注冊(cè)中心發(fā)起請(qǐng)求獲取服務(wù)A的實(shí)例清單,注冊(cè)中心返回服務(wù)A的實(shí)例清單,然后服務(wù)B會(huì)從清單中以某種策略輪詢?cè)L問(wèn)清單中的的實(shí)例,實(shí)現(xiàn)負(fù)載均衡的效果 訪問(wèn)方式可以通過(guò) Ribbon。

實(shí)際生產(chǎn)項(xiàng)目中,不會(huì)在每一次請(qǐng)求中都獲取服務(wù)列表清單,這樣做效率低下。實(shí)際場(chǎng)景中緩存和服務(wù)剔除等機(jī)制也會(huì)有一些不同的實(shí)現(xiàn)方式

3:服務(wù)同步

當(dāng)Eureka實(shí)現(xiàn)高可用后,服務(wù)提供者可分別注冊(cè)到集群中的不同服務(wù)注冊(cè)中心上,也就是說(shuō) 它們的信息分別被不同的注冊(cè)中心維護(hù),此時(shí)由于服務(wù)中心互相注冊(cè)為服務(wù)(高可用),當(dāng)服務(wù)提供者發(fā)送注冊(cè)請(qǐng)求到一個(gè)服務(wù)注冊(cè)中心時(shí),它會(huì)將該請(qǐng)求轉(zhuǎn)發(fā)同步給集群中的其他注冊(cè)中心,從而實(shí)現(xiàn)服務(wù)注冊(cè)中心的服務(wù)同步。通過(guò)服務(wù)同步,兩個(gè)服務(wù)提供者的服務(wù)信息就可以通過(guò)這兩臺(tái)服務(wù)注冊(cè)中心中的任意一臺(tái)獲取到

4:服務(wù)續(xù)約

在注冊(cè)完服務(wù)之后,服務(wù)提供者會(huì)維護(hù)一個(gè)心跳用來(lái)持續(xù)告訴Eureka“我還活著”,以防止Eureka的剔除服務(wù)將該服務(wù)從列表清單中排除出去,我們稱該操作為服務(wù)續(xù)約

關(guān)于服務(wù)續(xù)約有兩個(gè)重要的屬性,

##用于定義服務(wù)續(xù)約任務(wù)的調(diào)用間隔時(shí)間,默認(rèn)為30秒

eureka.instance.lease-renewal-interval-in-seconds=30

##參數(shù)用于定義服務(wù)失效的時(shí)間,默認(rèn)為90秒

eureka.instance.lease-expiration-duration-in-seconds=90

5:獲取服務(wù)

當(dāng)服務(wù)消費(fèi)者程序啟動(dòng)時(shí),它會(huì)發(fā)送一個(gè)Rest請(qǐng)求給注冊(cè)中心,來(lái)獲取上面注冊(cè)的服務(wù)清單,為了性能考慮,Eureka會(huì)維護(hù)一份只讀的服務(wù)清單來(lái)返回給客戶端,同時(shí)該緩存清單會(huì)每隔30秒更新一次。

獲取服務(wù)是服務(wù)消費(fèi)者的基礎(chǔ),所以必須確保eureka.client.fetch-registry=true 默認(rèn)為true,若希望修改緩存清單的更新時(shí)間,可以通過(guò)eureka.client.registry-fetch-interval-seconds=30 進(jìn)行修改,默認(rèn)30秒,參數(shù)單位秒

6:服務(wù)調(diào)用

獲取服務(wù)清單后,通過(guò)服務(wù)名可以獲取實(shí)例的名和實(shí)例的元數(shù)據(jù)(ip,port等等)利用Ribbon實(shí)現(xiàn)輪詢方式調(diào)用服務(wù)提供方。

7: 服務(wù)下線

當(dāng)服務(wù)下線后,正常情況下 我們是不希望,服務(wù)消費(fèi)方繼續(xù)調(diào)用已經(jīng)下線的服務(wù)的,所以再服務(wù)提供方正常關(guān)閉時(shí),會(huì)觸發(fā)一個(gè)服務(wù)下線的REST請(qǐng)求,告訴Eureka “我要下線了”。Eureka收到請(qǐng)求后,會(huì)將此服務(wù)設(shè)置為(DOWN),并將此消息廣播到出去,更新緩存清單。

8:服務(wù)中心的失效剔除

當(dāng)服務(wù)非正常關(guān)閉時(shí),比如機(jī)器Down了,斷電,內(nèi)存溢出,網(wǎng)絡(luò)故障等等。這時(shí)候是不會(huì)觸發(fā)服務(wù)下線的REST的請(qǐng)求,為了將這些已經(jīng)無(wú)法提供的服務(wù)剔除,Eureka Server會(huì)在啟動(dòng)時(shí),創(chuàng)建一個(gè)定時(shí)任務(wù),默認(rèn)每隔60秒將清單中超時(shí)沒(méi)有續(xù)約的剔除。

分享到:
標(biāo)簽:Spring Cloud Eureka
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定