SpringCloud主要框架

服務(wù)發(fā)現(xiàn)——Netflix Eureka

服務(wù)調(diào)用——Netflix Feign

熔斷器——Netflix Hystrix

服務(wù)網(wǎng)關(guān)——Netflix Zuul

分布式配置——Spring Cloud Config

消息總線? —— Spring Cloud Bus

總結(jié)


服務(wù)發(fā)現(xiàn)——Netflix Eureka

在許多分布式系統(tǒng)架構(gòu)中并淋,都需要去獲取機(jī)器的物理地址(微服務(wù)實(shí)例部署的服務(wù)器地址及端口)贮预。這一認(rèn)知在分布式系統(tǒng)架構(gòu)開始的時(shí)候就已經(jīng)存在鸣哀,而等到分布式計(jì)算出現(xiàn)的時(shí)候奶赠,被正式稱為服務(wù)發(fā)現(xiàn)(service discovery)蚊丐。

服務(wù)發(fā)現(xiàn)可以做一些簡(jiǎn)單的事情射富,比如維護(hù)一個(gè)帶有所有遠(yuǎn)程服務(wù)地址的屬性文件唧垦,或一個(gè)UDDI(Universal Description, Discovery and Integration)存儲(chǔ)庫。


服務(wù)調(diào)用——Netflix Feign

Eureka作為服務(wù)注冊(cè)中心查刻,在服務(wù)啟動(dòng)后,各個(gè)微服務(wù)會(huì)將自己注冊(cè)到Eureka server凤类。那么服務(wù)之間是如何調(diào)用穗泵?

但是在實(shí)際開發(fā)中,項(xiàng)目中會(huì)有很多的服務(wù)間的調(diào)用谜疤,對(duì)于服務(wù)的調(diào)用不可能是一處佃延。所以我們針對(duì)各個(gè)服務(wù)自行封裝一些客戶端類來包裝這些依賴服務(wù)的調(diào)用。

? ? ? SpringCloud Feign就在這個(gè)基礎(chǔ)上做了封裝夷磕,他可以幫助我們定義接口苇侵。開發(fā)時(shí)候只需要定義接口并添加相應(yīng)的注解,大大的簡(jiǎn)化了使用ribbon的開發(fā)量企锌。


熔斷器——Netflix Hystrix

在分布式架構(gòu)中榆浓,一個(gè)應(yīng)用依賴多個(gè)服務(wù)是非常常見的,如果其中一個(gè)依賴由于延遲過高發(fā)生阻塞撕攒,調(diào)用該依賴服務(wù)的線程就會(huì)阻塞陡鹃,如果相關(guān)業(yè)務(wù)的QPS較高烘浦,就可能產(chǎn)生大量阻塞,從而導(dǎo)致該應(yīng)用/服務(wù)由于服務(wù)器資源被耗盡而拖垮萍鲸。

另外闷叉,故障也會(huì)在應(yīng)用之間傳遞,如果故障服務(wù)的上游依賴較多脊阴,可能會(huì)引起服務(wù)的雪崩效應(yīng)握侧。就跟數(shù)據(jù)癱瘓,會(huì)引起依賴該數(shù)據(jù)庫的應(yīng)用癱瘓是一樣的道理嘿期。

Netflix Hystrix是SOA/微服務(wù)架構(gòu)中提供服務(wù)隔離品擎、熔斷、降級(jí)機(jī)制的工具/框架备徐。Netflix Hystrix是斷路器的一種實(shí)現(xiàn)萄传,用于高微服務(wù)架構(gòu)的可用性,是防止服務(wù)出現(xiàn)雪崩的利器蜜猾。


服務(wù)網(wǎng)關(guān)——Netflix Zuul

服務(wù)網(wǎng)關(guān)是微服務(wù)架構(gòu)中一個(gè)不可或缺的部分秀菱。通過服務(wù)網(wǎng)關(guān)統(tǒng)一向外系統(tǒng)提供REST API的過程中,除了具備服務(wù)路由蹭睡、均衡負(fù)載功能之外衍菱,它還具備了權(quán)限控制等功能。Spring Cloud Netflix中的Zuul就擔(dān)任了這樣的一個(gè)角色肩豁,為微服務(wù)架構(gòu)提供了前門保護(hù)的作用脊串,同時(shí)將權(quán)限控制這些較重的非業(yè)務(wù)邏輯內(nèi)容遷移到服務(wù)路由層面,使得服務(wù)集群主體能夠具備更高的可復(fù)用性和可測(cè)試性蓖救。


分布式配置——Spring Cloud Config

Spring Cloud Config為服務(wù)端和客戶端提供了分布式系統(tǒng)的外部化配置支持洪规。配置服務(wù)器為各應(yīng)用的所有環(huán)境提供了一個(gè)中心化的外部配置。它實(shí)現(xiàn)了對(duì)服務(wù)端和客戶端對(duì)Spring Environment和PropertySource抽象的映射循捺,所以它除了適用于Spring構(gòu)建的應(yīng)用程序斩例,也可以在任何其他語言運(yùn)行的應(yīng)用程序中使用。作為一個(gè)應(yīng)用可以通過部署管道來進(jìn)行測(cè)試或者投入生產(chǎn)从橘,我們可以分別為這些環(huán)境創(chuàng)建配置念赶,并且在需要遷移環(huán)境的時(shí)候獲取對(duì)應(yīng)環(huán)境的配置來運(yùn)行。

置服務(wù)器默認(rèn)采用git來存儲(chǔ)配置信息恰力,這樣就有助于對(duì)環(huán)境配置進(jìn)行版本管理叉谜,并且可以通過git客戶端工具來方便的管理和訪問配置內(nèi)容。當(dāng)然他也提供本地化文件系統(tǒng)的存儲(chǔ)方式踩萎。

使用 spring Cloud 進(jìn)行集中式配置管理停局,將以往的配置文件從項(xiàng)目中摘除后放到Git 或svn中集中管理,并在需要變更的時(shí)候,可以通知到各應(yīng)用程序董栽,應(yīng)用程序刷新配置不需要重啟码倦。


消息總線 —— Spring Cloud Bus

Spring Cloud Bus將分布式系統(tǒng)的節(jié)點(diǎn)與輕量級(jí)消息代理鏈接。這可以用于廣播狀態(tài)更改(例如配置更改)或其他管理指令锭碳。一個(gè)關(guān)鍵的想法是袁稽,總線就像一個(gè)分布式執(zhí)行器,用于擴(kuò)展的Spring Boot應(yīng)用程序擒抛,但也可以用作應(yīng)用程序之間的通信通道推汽。目前唯一的實(shí)現(xiàn)是使用AMQP代理作為傳輸,但是相同的基本功能集(還有一些取決于傳輸)在其他傳輸?shù)穆肪€圖上歧沪。


總結(jié)

圖片發(fā)自簡(jiǎn)書App

? ? ? 我們使用Spring Cloud Netflix中的Eureka實(shí)現(xiàn)了服務(wù)注冊(cè)中心以及服務(wù)注冊(cè)與發(fā)現(xiàn)歹撒;而服務(wù)間通過Ribbon或Feign實(shí)現(xiàn)服務(wù)的消費(fèi)以及均衡負(fù)載;通過Spring Cloud Config實(shí)現(xiàn)了應(yīng)用多環(huán)境的外部化配置以及版本管理槽畔。為了使得服務(wù)集群更為健壯栈妆,使用Hystrix的融斷機(jī)制來避免在微服務(wù)架構(gòu)中個(gè)別服務(wù)出現(xiàn)異常時(shí)引起的故障蔓延胁编。

? ? ? 在該架構(gòu)中厢钧,我們的服務(wù)集群包含:內(nèi)部服務(wù)Service A和Service B,他們都會(huì)注冊(cè)與訂閱服務(wù)至Eureka Server嬉橙,而Open Service是一個(gè)對(duì)外的服務(wù)早直,通過均衡負(fù)載公開至服務(wù)調(diào)用方,這種公開當(dāng)時(shí)是通過服務(wù)網(wǎng)關(guān)——Netflix Zuul市框。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霞扬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子枫振,更是在濱河造成了極大的恐慌喻圃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粪滤,死亡現(xiàn)場(chǎng)離奇詭異斧拍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杖小,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門肆汹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人予权,你說我怎么就攤上這事昂勉。” “怎么了扫腺?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵岗照,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)攒至,這世上最難降的妖魔是什么煞肾? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮嗓袱,結(jié)果婚禮上籍救,老公的妹妹穿的比我還像新娘。我一直安慰自己渠抹,他們只是感情好蝙昙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梧却,像睡著了一般奇颠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上放航,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天烈拒,我揣著相機(jī)與錄音,去河邊找鬼广鳍。 笑死荆几,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赊时。 我是一名探鬼主播吨铸,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼祖秒!你這毒婦竟也來了诞吱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤竭缝,失蹤者是張志新(化名)和其女友劉穎房维,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抬纸,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咙俩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了松却。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暴浦。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖晓锻,靈堂內(nèi)的尸體忽然破棺而出歌焦,到底是詐尸還是另有隱情,我是刑警寧澤砚哆,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布独撇,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纷铣。R本人自食惡果不足惜卵史,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搜立。 院中可真熱鬧以躯,春花似錦、人聲如沸啄踊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颠通。三九已至址晕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顿锰,已是汗流浹背谨垃。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留硼控,地道東北人刘陶。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像淀歇,于是被迫代替她去往敵國(guó)和親易核。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匈织,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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