SpringCloud-注冊(cè)中心Eureka

1 啟動(dòng)配置 & Maven依賴

引入SpringBoot 和 SpringCloud


引入Eureka Server

<dependency>

? ? ? <groupId>org.springframework.cloud</groupId>

? ? ? <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

resource目錄下創(chuàng)建啟動(dòng)配置文件application.yml

spring:

? application:

? ? name: eureka-server

server:

? port: 9999? ? #指定服務(wù)端口

eureka:

? instance:

? ? hostname: localhost

? client:

? ? registerWithEureka: false? #是否將eureka自身作為應(yīng)用注冊(cè)到eureka注冊(cè)中心

? ? fetchRegistry: false? ? ? #為true時(shí)述雾,可以啟動(dòng)模软,但報(bào)異常:Cannot execute request on any known server

? ? serviceUrl:

? ? ? defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

? server:

? ? enableSelfPreservation: false

? ? evictionIntervalTimerInMs: 4000

logging:

? config: classpath:logback.xml

創(chuàng)建啟動(dòng)類 DiscoveryServer


其中@EnableEurekaServer 代表啟用EurekaServer

@EnableEurekaClient非必須配置,當(dāng)需要將EurekaServer本身作為服務(wù)注冊(cè)到注冊(cè)中心時(shí)需要配置此注解建钥,適用于注冊(cè)中心集群模式。

客戶端配置


<dependency>

? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>

? ? ? ? ? ? <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

? </dependency>

2 Eureka的原理和優(yōu)點(diǎn)

eureka 原理

優(yōu)點(diǎn)

1糖埋、在Eureka平臺(tái)中忿项,如果某臺(tái)服務(wù)器宕機(jī),Eureka不會(huì)有類似于ZooKeeper的選舉leader的過程长豁;客戶端請(qǐng)求會(huì)自動(dòng)切換到新的Eureka節(jié)點(diǎn)钧唐;當(dāng)宕機(jī)的服務(wù)器重新恢復(fù)后,Eureka會(huì)再次將其納入到服務(wù)器集群管理之中蕉斜;而對(duì)于它來說逾柿,所有要做的無非是同步一些新的服務(wù)注冊(cè)信息而已。所以宅此,再也不用擔(dān)心有“掉隊(duì)”的服務(wù)器恢復(fù)以后机错,會(huì)從Eureka服務(wù)器集群中剔除出去的風(fēng)險(xiǎn)了。Eureka甚至被設(shè)計(jì)用來應(yīng)付范圍更廣的網(wǎng)絡(luò)分割故障父腕,并實(shí)現(xiàn)“0”宕機(jī)維護(hù)需求。(多個(gè)zookeeper之間網(wǎng)絡(luò)出現(xiàn)問題,造成出現(xiàn)多個(gè)leader,發(fā)生腦裂)當(dāng)網(wǎng)絡(luò)分割故障發(fā)生時(shí)斥难,每個(gè)Eureka節(jié)點(diǎn),會(huì)持續(xù)的對(duì)外提供服務(wù)(注:ZooKeeper不會(huì)):接收新的服務(wù)注冊(cè)同時(shí)將它們提供給下游的服務(wù)發(fā)現(xiàn)請(qǐng)求哑诊。這樣一來,就可以實(shí)現(xiàn)在同一個(gè)子網(wǎng)中(same side of partition)及刻,新發(fā)布的服務(wù)仍然可以被發(fā)現(xiàn)與訪問。

2缴饭、正常配置下,Eureka內(nèi)置了心跳服務(wù)颗搂,用于淘汰一些“瀕死”的服務(wù)器;如果在Eureka中注冊(cè)的服務(wù)丢氢,它的“心跳”變得遲緩時(shí),Eureka會(huì)將其整個(gè)剔除出管理范圍(這點(diǎn)有點(diǎn)像ZooKeeper的做法)卖丸。這是個(gè)很好的功能纺且,但是當(dāng)網(wǎng)絡(luò)分割故障發(fā)生時(shí),這也是非常危險(xiǎn)的稍浆;因?yàn)樵芈担切┮驗(yàn)榫W(wǎng)絡(luò)問題(注:心跳慢被剔除了)而被剔除出去的服務(wù)器本身是很”健康“的,只是因?yàn)榫W(wǎng)絡(luò)分割故障把Eureka集群分割成了獨(dú)立的子網(wǎng)而不能互訪而已衅枫。

幸運(yùn)的是嫁艇,Netflix考慮到了這個(gè)缺陷。如果Eureka服務(wù)節(jié)點(diǎn)在短時(shí)間里丟失了大量的心跳連接(注:可能發(fā)生了網(wǎng)絡(luò)故障)弦撩,那么這個(gè)Eureka節(jié)點(diǎn)會(huì)進(jìn)入”自我保護(hù)模式“步咪,同時(shí)保留那些“心跳死亡“的服務(wù)注冊(cè)信息不過期。此時(shí)益楼,這個(gè)Eureka節(jié)點(diǎn)對(duì)于新的服務(wù)還能提供注冊(cè)服務(wù)猾漫,對(duì)于”死亡“的仍然保留,以防還有客戶端向其發(fā)起請(qǐng)求感凤。當(dāng)網(wǎng)絡(luò)故障恢復(fù)后悯周,這個(gè)Eureka節(jié)點(diǎn)會(huì)退出”自我保護(hù)模式“。所以Eureka的哲學(xué)是陪竿,同時(shí)保留”好數(shù)據(jù)“與”壞數(shù)據(jù)“總比丟掉任何”好數(shù)據(jù)“要更好禽翼,所以這種模式在實(shí)踐中非常有效。

3、Eureka還有客戶端緩存功能(注:Eureka分為客戶端程序與服務(wù)器端程序兩個(gè)部分闰挡,客戶端程序負(fù)責(zé)向外提供注冊(cè)與發(fā)現(xiàn)服務(wù)接口)锐墙。所以即便Eureka集群中所有節(jié)點(diǎn)都失效,或者發(fā)生網(wǎng)絡(luò)分割故障導(dǎo)致客戶端不能訪問任何一臺(tái)Eureka服務(wù)器长酗;Eureka服務(wù)的消費(fèi)者仍然可以通過Eureka客戶端緩存來獲取現(xiàn)有的服務(wù)注冊(cè)信息溪北。甚至最極端的環(huán)境下,所有正常的Eureka節(jié)點(diǎn)都不對(duì)請(qǐng)求產(chǎn)生相應(yīng)花枫,也沒有更好的服務(wù)器解決方案來解決這種問題

時(shí)刻盐;得益于Eureka的客戶端緩存技術(shù),消費(fèi)者服務(wù)仍然可以通過Eureka客戶端查詢與獲取注冊(cè)服務(wù)信息劳翰,這點(diǎn)很重要。

4馒疹、Eureka的構(gòu)架保證了它能夠成為Service發(fā)現(xiàn)服務(wù)佳簸。它相對(duì)與ZooKeeper來說剔除了Leader節(jié)點(diǎn)的選取或者事務(wù)日志機(jī)制,這樣做有利于減少使用者維護(hù)的難度也保證了Eureka的在運(yùn)行時(shí)的健壯性颖变。而且Eureka就是為發(fā)現(xiàn)服務(wù)所設(shè)計(jì)的生均,它有獨(dú)立的客戶端程序庫,同時(shí)提供心跳服務(wù)腥刹、服務(wù)健康監(jiān)測(cè)马胧、自動(dòng)發(fā)布服務(wù)與自動(dòng)刷新緩存的功能。但是衔峰,如果使用ZooKeeper你必須自己來實(shí)現(xiàn)這些功能佩脊。Eureka的所有庫都是開源的,所有人都能看到與使用這些源代碼垫卤,這比那些只有一兩個(gè)人能看或者維護(hù)的客戶端庫要好威彰。

5歇盼、維護(hù)Eureka服務(wù)器也非常的簡(jiǎn)單评抚,比如慨代,切換一個(gè)節(jié)點(diǎn)只需要在現(xiàn)有EIP下移除一個(gè)現(xiàn)有的節(jié)點(diǎn)然后添加一個(gè)新的就行。Eureka提供了一個(gè)web-based的圖形化的運(yùn)維界面鸣剪,在這個(gè)界面中可以查看Eureka所管理的注冊(cè)服務(wù)的運(yùn)行狀態(tài)信息:是否健康筐骇,運(yùn)行日志等。Eureka甚至提供了Restful-API接口厌均,方便第三方程序集成Eureka的功能棺弊。

3 其他注冊(cè)中心:Zookeeper,Consul,Etcd...

4 (@_@)拓展知識(shí):CAP理論

C(一致性)擒悬、A(可用性)和P(分區(qū)容錯(cuò)性),一個(gè)系統(tǒng)不可能同時(shí)滿足這三點(diǎn),這就好比性能優(yōu)化時(shí)常常會(huì)考慮的時(shí)間與空間的關(guān)系懂牧。所以Zookeeper保證的是CP,而Eureka保證的是AP,在互聯(lián)網(wǎng)應(yīng)用中,大部分系統(tǒng)需要7*24小時(shí)不間斷提供服務(wù)(我們IT人只賣藝不賣身),個(gè)人覺得AP要更加重要些。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畜侦,一起剝皮案震驚了整個(gè)濱河市旋膳,隨后出現(xiàn)的幾起案子验懊,更是在濱河造成了極大的恐慌盯孙,老刑警劉巖振惰,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骑晶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡匙头,警方通過查閱死者的電腦和手機(jī)蹂析,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕稻,“玉大人俺祠,你說我怎么就攤上這事借帘。” “怎么了蔫缸?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵捂龄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我唇撬,道長(zhǎng),這世上最難降的妖魔是什么豫柬? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任烧给,我火速辦了婚禮础嫡,結(jié)果婚禮上酝惧,老公的妹妹穿的比我還像新娘晚唇。我一直安慰自己,他們只是感情好平项,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著接癌,像睡著了一般扔涧。 火紅的嫁衣襯著肌膚如雪届谈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天湖雹,我揣著相機(jī)與錄音摔吏,去河邊找鬼征讲。 笑死橡娄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滤祖。 我是一名探鬼主播瓶籽,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼汤求,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼茬暇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起勒奇,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤赊颠,失蹤者是張志新(化名)和其女友劉穎格二,沒想到半個(gè)月后顶猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痘括,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纲菌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年翰舌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懂算。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庇麦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酸役,到底是詐尸還是另有隱情,我是刑警寧澤贱呐,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站驳阎,受9級(jí)特大地震影響馁蒂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饵隙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一金矛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驶俊,春花似錦、人聲如沸榕酒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惩妇,卻和暖如春筐乳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝙云。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工波材, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留身隐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像垢揩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叁巨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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