Spring Cloud系列一 之 eureka服務(wù)注冊(cè)中心

服務(wù)發(fā)現(xiàn):Eureka客戶端

服務(wù)發(fā)現(xiàn)是微服務(wù)架構(gòu)中的一項(xiàng)核心服務(wù)。如果沒(méi)有該服務(wù)取胎,我們就只能為每一個(gè)服務(wù)調(diào)用者手工配置可用服務(wù)的地址展哭,這不僅繁瑣而且非常容易出錯(cuò)湃窍。Eureka包括了服務(wù)端和客戶端兩部分。服務(wù)端可以做到高可用集群部署匪傍,每一個(gè)節(jié)點(diǎn)可以自動(dòng)同步您市,有相同的服務(wù)注冊(cè)信息。

向Eureka注冊(cè)服務(wù)
當(dāng)客戶端向Eureka注冊(cè)自己時(shí)會(huì)提供一些元信息役衡,如主機(jī)名茵休、端口號(hào)、獲取健康信息的url和主頁(yè)等手蝎。Eureka通過(guò)心跳連接判斷服務(wù)是否在線榕莺,如果心跳檢測(cè)失敗超過(guò)指定時(shí)間,對(duì)應(yīng)的服務(wù)通常就會(huì)被移出可用服務(wù)列表棵介。
譯者注:向Eureka Server注冊(cè)過(guò)的服務(wù)會(huì)每30秒向Server發(fā)送一次心跳連接, Server會(huì)根據(jù)心跳數(shù)據(jù)更新該服務(wù)的健康狀態(tài)并復(fù)制到其他Server中钉鸯。如果超過(guò)90秒沒(méi)有收到該服務(wù)的心跳數(shù)據(jù),則Server會(huì)將該服務(wù)移出列表邮辽。

注冊(cè)項(xiàng)目實(shí)際就是一個(gè)普通的Spring Boot應(yīng)用唠雕,使用@EnableDiscoveryClient注解后,會(huì)自動(dòng)向Eureka注冊(cè)中心吨述,變成Rureka服務(wù)端實(shí)例岩睁,

服務(wù)注冊(cè)中心實(shí)際也是一個(gè)普通SpringBoot應(yīng)用,使用了@EnableEurekaServer注解后揣云,啟動(dòng)應(yīng)用捕儒,Eureka有一個(gè)帶UI的主頁(yè),注冊(cè)信息都在/訪問(wèn)


Basic Architecture



上圖簡(jiǎn)要描述了Eureka的基本架構(gòu)灵再,由3個(gè)角色組成:
Eureka Server

提供服務(wù)注冊(cè)和發(fā)現(xiàn)

Service Provider

服務(wù)提供方
將自身服務(wù)注冊(cè)到Eureka肋层,從而使服務(wù)消費(fèi)方能夠找到

Service Consumer

服務(wù)消費(fèi)方
從Eureka獲取注冊(cè)服務(wù)列表亿笤,從而能夠消費(fèi)服務(wù)

需要注意的是翎迁,上圖中的3個(gè)角色都是邏輯角色。在實(shí)際運(yùn)行中净薛,這幾個(gè)角色甚至可以是同一個(gè)實(shí)例汪榔,比如在我們項(xiàng)目中,Eureka Server和Service Provider就是同一個(gè)JVM進(jìn)程肃拜。

More in depth



上圖更進(jìn)一步的展示了3個(gè)角色之間的交互痴腌。
Service Provider會(huì)向Eureka Server做Register(服務(wù)注冊(cè))、Renew(服務(wù)續(xù)約)燃领、Cancel(服務(wù)下線)等操作士聪。
Eureka Server之間會(huì)做注冊(cè)服務(wù)的同步,從而保證狀態(tài)一致
Service Consumer會(huì)向Eureka Server獲取注冊(cè)服務(wù)列表猛蔽,并消費(fèi)服務(wù)

實(shí)現(xiàn)細(xì)節(jié):
ApplicationResource類接收Http服務(wù)請(qǐng)求剥悟,調(diào)用PeerAwareInstanceRegistryImpl的register方法

private final PeerAwareInstanceRegistry registry;//實(shí)現(xiàn)注冊(cè) InstancInfo包含 instancdId灵寺、appName、ipAddr区岗、port略板、securePosrt....
@POST
@Consumes({"application/json", "application/xml"})
public Response addInstance(InstanceInfo info, @HeaderParam("x-netflix-discovery-replication") String isReplication) {
logger.debug("Registering instance {} (replication={})", info.getId(), isReplication);
....處理失敗返回
this.registry.register(info, "true".equals(isReplication));
return Response.status(204).build();
}
PeerAwareInstanceRegistryImpl完成服務(wù)注冊(cè)后,調(diào)用replicateToPeers向其它Eureka Server節(jié)點(diǎn)(Peer)做狀態(tài)同步

Chapter9-1-1 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能

未完待續(xù)慈缔。叮称。。
參考資料:http://docs.springcloud.cn/user-guide/eureka/
參考資料:http://nobodyiam.com/2016/06/25/dive-into-eureka/(細(xì)節(jié)實(shí)現(xiàn))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藐鹤,一起剝皮案震驚了整個(gè)濱河市瓤檐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娱节,老刑警劉巖距帅,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異括堤,居然都是意外死亡碌秸,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門悄窃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讥电,“玉大人,你說(shuō)我怎么就攤上這事轧抗《鞯校” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵横媚,是天一觀的道長(zhǎng)纠炮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)灯蝴,這世上最難降的妖魔是什么恢口? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮穷躁,結(jié)果婚禮上耕肩,老公的妹妹穿的比我還像新娘。我一直安慰自己问潭,他們只是感情好猿诸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狡忙,像睡著了一般梳虽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灾茁,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天窜觉,我揣著相機(jī)與錄音是复,去河邊找鬼。 笑死竖螃,一個(gè)胖子當(dāng)著我的面吹牛淑廊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播特咆,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼季惩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腻格?” 一聲冷哼從身側(cè)響起画拾,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菜职,沒(méi)想到半個(gè)月后青抛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酬核,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蜜另,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫡意。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡举瑰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔬螟,到底是詐尸還是另有隱情此迅,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布旧巾,位于F島的核電站耸序,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鲁猩。R本人自食惡果不足惜坎怪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绳匀。 院中可真熱鬧芋忿,春花似錦炸客、人聲如沸疾棵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)是尔。三九已至,卻和暖如春开仰,著一層夾襖步出監(jiān)牢的瞬間拟枚,已是汗流浹背薪铜。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恩溅,地道東北人隔箍。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像脚乡,于是被迫代替她去往敵國(guó)和親蜒滩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容