基于Spring Cloud的微服務(wù)架構(gòu)分析

Spring Cloud是一個(gè)相對(duì)比較新的微服務(wù)框架,2016年才推出1.0的release版本篓吁。雖然Spring Cloud時(shí)間最短隙袁,但是相比Dubbo等RPC框架滑臊,Spring Cloud提供的全套的分布式系統(tǒng)解決方案口芍。
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)雇卷,如服務(wù)發(fā)現(xiàn)注冊(cè)鬓椭、配置中心、消息總線关划、負(fù)載均衡小染、斷路器、數(shù)據(jù)監(jiān)控等贮折,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署氧映。
Spring并沒有重復(fù)制造輪子,它只是將目前各家公司(主要是Netflix)開發(fā)的比較成熟脱货、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理律姨,最終給開發(fā)者留出了一套簡單易懂振峻、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。

基于Spring Cloud的微服務(wù)架構(gòu)分析

Spring Cloud 的核心組件

Eureka(注冊(cè)中心)

Eureka是Spring Cloud微服務(wù)架構(gòu)中的注冊(cè)中心择份,專門負(fù)責(zé)服務(wù)的注冊(cè)與發(fā)現(xiàn),里面有一個(gè)注冊(cè)表扣孟,保存了各個(gè)服務(wù)器的機(jī)器和端口。

  • Eureka服務(wù)端:也稱服務(wù)注冊(cè)中心荣赶,同其他服務(wù)注冊(cè)中心一樣凤价,支持高可用配置。如果Eureka以集群模式部署拔创,當(dāng)集群中有分片出現(xiàn)故障時(shí)利诺,那么Eureka就轉(zhuǎn)入自我保護(hù)模式。它允許在分片故障期間繼續(xù)提供服務(wù)的發(fā)現(xiàn)和注冊(cè)剩燥,當(dāng)故障分片恢復(fù)運(yùn)行時(shí)慢逾,集群中其他分片會(huì)把它們的狀態(tài)再次同步回來。
  • Eureka客戶端:主要處理服務(wù)的注冊(cè)與發(fā)現(xiàn)÷绿玻客戶端服務(wù)通過注解和參數(shù)配置的方式口注,嵌入在客戶端應(yīng)用程序的代碼中陨仅,在應(yīng)用程序運(yùn)行時(shí)禽篱,Eureka客戶端想注冊(cè)中心注冊(cè)自身提供的服務(wù)并周期性地發(fā)送心跳來更新它的服務(wù)租約。同時(shí)缸剪,它也能從服務(wù)端查詢當(dāng)前注冊(cè)的服務(wù)信息并把它們緩存到本地并周期性地刷新服務(wù)狀態(tài)策添。

Eureka Server的高可用實(shí)際上就是將自己作為服務(wù)向其他注冊(cè)中心注冊(cè)自己材部,這樣就可以形成一組互相注冊(cè)的服務(wù)注冊(cè)中心,以實(shí)現(xiàn)服務(wù)清單的互相同步舰攒,達(dá)到高可用效果败富。

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

Zuul網(wǎng)關(guān)負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求給對(duì)應(yīng)的服務(wù),這個(gè)組件是負(fù)責(zé)網(wǎng)絡(luò)路由的摩窃。
Spring Cloud Zuul通過與Spring Cloud Eureka進(jìn)行整合兽叮,將自身注冊(cè)為Eureka服務(wù)治理下的應(yīng)用,同時(shí)從Eureka中獲得了所有其他微服務(wù)的實(shí)例信息猾愿。
對(duì)于路由規(guī)則的維護(hù)鹦聪,Zuul默認(rèn)會(huì)將通過以服務(wù)名作為ContextPath的方式來創(chuàng)建路由映射。
Zuul提供了一套過濾器機(jī)制蒂秘,可以支持在API網(wǎng)關(guān)無附上進(jìn)行統(tǒng)一調(diào)用來對(duì)微服務(wù)接口做前置過濾泽本,已實(shí)現(xiàn)對(duì)微服務(wù)接口的攔截和校驗(yàn)。

Ribbon(負(fù)載均衡)

提供云端負(fù)載均衡姻僧,有多種負(fù)載均衡策略可供選擇规丽,可配合服務(wù)發(fā)現(xiàn)和斷路器使用。
Ribbon是一個(gè)基于HTTP和TCP的客戶端負(fù)載均衡器撇贺,它可以在通過客戶端中配置的ribbonServerList服務(wù)端列表去輪詢?cè)L問以達(dá)到服務(wù)均衡的作用赌莺。
當(dāng)Ribbon和Eureka聯(lián)合使用時(shí),Ribbon的服務(wù)實(shí)例清單RibbonServerList會(huì)被 DiscoveryEnabledNIWSServerList重寫松嘶,擴(kuò)展成從Eureka注冊(cè)中心中獲取服務(wù)端列表艘狭。同時(shí)它也會(huì)用NIWSDiscoveryPing來取代IPing,它將職責(zé)委托給Eureka來去定服務(wù)端是否已經(jīng)啟動(dòng)翠订。
在客戶端負(fù)載均衡中巢音,所有客戶端節(jié)點(diǎn)都維護(hù)著自己要訪問的服務(wù)端清單,而這些服務(wù)端的清單來自于服務(wù)注冊(cè)中心(比如Eureka)尽超。在客戶端負(fù)載均衡中也需要心跳去維護(hù)服務(wù)端清單的健康性官撼,只是這個(gè)步驟需要與服務(wù)注冊(cè)中心配合完成。
通過Spring Cloud Ribbon的封裝橙弱,我們?cè)谖⒎?wù)架構(gòu)中使用客戶端負(fù)載均衡調(diào)用只需要如下兩步:

  • 服務(wù)提供者只需要啟動(dòng)多個(gè)服務(wù)實(shí)例并且注冊(cè)到一個(gè)注冊(cè)中心或是多個(gè)相關(guān)聯(lián)的服務(wù)注冊(cè)中心歧寺。
  • 服務(wù)消費(fèi)者直接通過調(diào)用被@LoadBalanced注解修飾過的RestTemplate來實(shí)現(xiàn)面向服務(wù)的接口調(diào)用燥狰。

Hystrix(熔斷保護(hù)器)

熔斷器,容錯(cuò)管理工具斜筐,旨在通過熔斷機(jī)制控制服務(wù)和第三方庫的節(jié)點(diǎn),從而對(duì)延遲和故障提供更強(qiáng)大的容錯(cuò)能力龙致。
提供線程池不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離顷链,避免了服務(wù)器雪崩的問題目代。
在微服務(wù)架構(gòu)中,存在著那么多的服務(wù)單元嗤练,若一個(gè)單元出現(xiàn)故障榛了,就很容易因依賴關(guān)系而引發(fā)故障的蔓延,最終導(dǎo)致整個(gè)系統(tǒng)的癱瘓煞抬,這樣的架構(gòu)相較傳統(tǒng)架構(gòu)更加不穩(wěn)定霜大。為了解決這樣的問題,產(chǎn)生了斷路器等一系列的服務(wù)保護(hù)機(jī)制革答。
在分布式架構(gòu)中战坤,當(dāng)某個(gè)服務(wù)單元發(fā)生故障之后,通過斷路器的故障監(jiān)控残拐,向調(diào)用方返回一個(gè)錯(cuò)誤響應(yīng)途茫,而不是長時(shí)間的等待。這樣就不會(huì)使得線程因調(diào)用故障服務(wù)被長時(shí)間占用不釋放溪食,避免了故障在分布式系統(tǒng)中的蔓延囊卜。
Hystrix具備服務(wù)降級(jí)、服務(wù)熔斷错沃、線程和信號(hào)隔離栅组、請(qǐng)求緩存、請(qǐng)求合并以及服務(wù)監(jiān)控等強(qiáng)大功能枢析。
Hystrix使用艙壁模式實(shí)現(xiàn)線程池的隔離笑窜,它會(huì)為每一個(gè)依賴服務(wù)創(chuàng)建一個(gè)獨(dú)立的線程池,這樣就算某個(gè)依賴服務(wù)出現(xiàn)延遲過高的情況登疗,也只是對(duì)該依賴服務(wù)的調(diào)用產(chǎn)生影響,而不會(huì)拖慢其他的依賴服務(wù)嫌蚤。

Feign(REST轉(zhuǎn)換器)

基于動(dòng)態(tài)代理機(jī)制辐益,根據(jù)注解和選擇的機(jī)器,拼接請(qǐng)求url地址脱吱,發(fā)起請(qǐng)求智政。Feign的關(guān)鍵機(jī)制是使用了動(dòng)態(tài)代理:

  • 首先,對(duì)某個(gè)接口定義了@FeignClient注解箱蝠,F(xiàn)eign就會(huì)針對(duì)這個(gè)接口創(chuàng)建一個(gè)動(dòng)態(tài)代理续捂;
  • 接著調(diào)用接口的時(shí)候垦垂,本質(zhì)就是調(diào)用Feign創(chuàng)建的動(dòng)態(tài)代理;
  • Feign的動(dòng)態(tài)代理會(huì)根據(jù)在接口上的@RequestMapping等注解牙瓢,來動(dòng)態(tài)構(gòu)造要請(qǐng)求的服務(wù)的地址劫拗;
  • 針對(duì)這個(gè)地址,發(fā)起請(qǐng)求矾克、解析響應(yīng)页慷。

Feign是和Ribbon以及Eureka緊密協(xié)作的:

  • 首先Ribbon會(huì)從Eureka Client里獲取到對(duì)應(yīng)的服務(wù)注冊(cè)表,也就知道了所有的服務(wù)都部署在了哪些機(jī)器上胁附,在監(jiān)聽哪些端口酒繁;
  • 然后Ribbon就可以使用默認(rèn)的Round Robin算法,從中選擇一臺(tái)機(jī)器控妻;
  • Feign就會(huì)針對(duì)這臺(tái)機(jī)器州袒,構(gòu)造并發(fā)起請(qǐng)求。

Config(分布式配置)

配置管理工具包弓候,讓你可以把配置放到遠(yuǎn)程服務(wù)器郎哭,集中化管理集群配置,目前支持本地存儲(chǔ)弓叛、Git以及Subversion彰居。

注冊(cè)中心與API網(wǎng)關(guān)的分析

微服務(wù)網(wǎng)關(guān)更多是在前后端分離,或者說涉及到獨(dú)立的類似手機(jī)APP等前端應(yīng)用的時(shí)候使用的最多撰筷,即把內(nèi)部各個(gè)微服務(wù)組件模塊的API接口能力統(tǒng)一注冊(cè)和接入到網(wǎng)關(guān)陈惰,對(duì)于APP也只需要訪問網(wǎng)關(guān)暴露的接口即可,同時(shí)通過網(wǎng)關(guān)還可以進(jìn)一步的實(shí)現(xiàn)安全隔離毕籽。
也就是說在這種場景下抬闯,網(wǎng)關(guān)更多的是實(shí)現(xiàn)了接口服務(wù)的代理和路由轉(zhuǎn)發(fā)能力,更多的是向外的一種能力發(fā)布关筒。

  1. 一個(gè)獨(dú)立的開發(fā)團(tuán)隊(duì)溶握,為保證獨(dú)立自治,以及內(nèi)部多個(gè)微服務(wù)模塊間的交互集成蒸播,最好啟用獨(dú)立的服務(wù)注冊(cè)中心實(shí)現(xiàn)服務(wù)注冊(cè)睡榆,發(fā)現(xiàn)能力。即開發(fā)團(tuán)隊(duì)內(nèi)部多個(gè)微服務(wù)模塊間的集成袍榆,不需要通過網(wǎng)關(guān)胀屿,只需要通過服務(wù)注冊(cè)中心進(jìn)行集成即可。
  2. 開發(fā)團(tuán)隊(duì)需要暴露能力給外部包雀,包括暴露能力給其它的開發(fā)團(tuán)隊(duì)宿崭,需要考慮將該API接口注冊(cè)到外部的網(wǎng)關(guān)上。在這里建議是拆分兩個(gè)獨(dú)立網(wǎng)關(guān)才写,一個(gè)是內(nèi)部API網(wǎng)關(guān)葡兑,一個(gè)是放置到DMZ區(qū)面對(duì)公網(wǎng)訪問的API網(wǎng)關(guān)奖蔓。對(duì)于服務(wù)如果同時(shí)涉及到內(nèi)部和外部使用,則兩邊注冊(cè)讹堤。建議不要通過兩次網(wǎng)關(guān)去路由吆鹤,一個(gè)是影響性能,一個(gè)是不方便后續(xù)問題排查蜕劝。
  3. 構(gòu)建在開發(fā)團(tuán)隊(duì)之外的API網(wǎng)關(guān)必須具備負(fù)載均衡能力檀头,可以配置多個(gè)IP地址。通過該API網(wǎng)關(guān)也最好具備和Docker容器擴(kuò)展后的服務(wù)自動(dòng)注冊(cè)和地址加入擴(kuò)展能力岖沛。
基于Spring Cloud的微服務(wù)架構(gòu)分析

Eureka 的競品分析:Nacos暑始、ZooKeeper、etcd

服務(wù)發(fā)現(xiàn)是一個(gè)古老的話題婴削,當(dāng)應(yīng)用開始脫離單機(jī)運(yùn)行和訪問時(shí)廊镜,服務(wù)發(fā)現(xiàn)就誕生了。目前的網(wǎng)絡(luò)架構(gòu)是每個(gè)主機(jī)都有一個(gè)獨(dú)立的IP地址唉俗,那么服務(wù)發(fā)現(xiàn)基本上都是通過某種方式獲取到服務(wù)所部署的IP地址嗤朴。DNS協(xié)議是最早將一個(gè)網(wǎng)絡(luò)名稱翻譯為網(wǎng)絡(luò)IP的協(xié)議,在最初的架構(gòu)選型中虫溜,DNS+LVS+Nginx基本可以滿足所有的RESTful服務(wù)的發(fā)現(xiàn)雹姊,此時(shí)服務(wù)的IP列表通常配置在Nginx或者LVS。后來出現(xiàn)了RPC服務(wù)衡楞,服務(wù)的上下線更加頻繁吱雏,人們開始尋求一種能夠支持動(dòng)態(tài)上下線并且推送IP列表變化的注冊(cè)中心產(chǎn)品。

基于Spring Cloud的微服務(wù)架構(gòu)分析

Eureka

  • Spring Cloud Eureka所選擇的是AP瘾境,采用的是去中心化結(jié)構(gòu)歧杏,放棄了強(qiáng)一致性。也就是說Eureka集群中的各個(gè)結(jié)點(diǎn)都是平等的迷守,沒有主從的概念犬绒。通過互相注冊(cè)的方式來進(jìn)行消息同步和保證高可用。并且一個(gè)Eureka Server結(jié)點(diǎn)掛掉了兑凿,還有其他同等的結(jié)點(diǎn)來提供服務(wù)凯力,并不會(huì)引發(fā)服務(wù)的中斷。
  • Eureka只能當(dāng)注冊(cè)中心礼华,想搞配置中心的話沮协,還得搭配Spring Cloud Config+Spring Cloud Bus。其中后者支持Rabbiimq和Kafka兩種模式卓嫂。
  • 使用Java語言來開發(fā)的,并且也是Spring Cloud的子項(xiàng)目聘殖,所以可以直接通過引入jar包的方式來集成Eureka晨雳,這點(diǎn)非常方便行瑞。

ZooKeeper

這是一款經(jīng)典的服務(wù)注冊(cè)中心產(chǎn)品(雖然它最初的定位并不在于此),在很長一段時(shí)間里餐禁,它是國人在提起RPC服務(wù)注冊(cè)中心時(shí)心里想到的唯一選擇血久,這很大程度上與Dubbo在中國的普及程度有關(guān)。

  • Apache Zookeeper所選擇的是CP帮非,也就是放棄了高可用性氧吐。Zookeeper集群在進(jìn)行消息同步的時(shí)候,必須有一半以上結(jié)點(diǎn)完成了同步才會(huì)返回末盔;而當(dāng)Master結(jié)點(diǎn)掛了或者集群中有過半的結(jié)點(diǎn)不能工作了筑舅,此時(shí)就會(huì)觸發(fā)故障恢復(fù),重新進(jìn)行Master選舉陨舱。在這個(gè)過程中翠拣,整個(gè)Zookeeper集群無法對(duì)外提供服務(wù),從而實(shí)去了A(可用性)游盲。
  • 為了達(dá)到C误墓,Zookeeper采用的是自己的ZAB協(xié)議。

Nacos

Nacos是阿里巴巴旗下的開源項(xiàng)目益缎,在2018年開源谜慌,攜帶著阿里巴巴大規(guī)模服務(wù)生產(chǎn)經(jīng)驗(yàn),試圖在服務(wù)注冊(cè)和配置管理這個(gè)市場上莺奔,提供給用戶一個(gè)新的選擇欣范。

  • Nacos一大特性是即支持CP,也支持AP弊仪∥蹩ǎ可以根據(jù)需要靈活選擇。
  • Nacos除了注冊(cè)中心之外励饵,也能充當(dāng)配置中心的作用驳癌。且配置中心可以按照namespace,group等維度來進(jìn)行數(shù)據(jù)隔離役听,來達(dá)到不同環(huán)境之間配置隔離的功能颓鲜。

值得一提的是,Nacos作為配置中心的持久化機(jī)制可以依賴于Mysql來完成(默認(rèn)依賴于內(nèi)置數(shù)據(jù)庫)典予。只需要將Nacos目錄下的sql腳本放到mysql中執(zhí)行(會(huì)生成11個(gè)表)甜滨,然后在nacos配置文件里面配一下mysql的賬號(hào)密碼即可。這樣使用mysql作為數(shù)據(jù)源的方式相比于nacos內(nèi)置數(shù)據(jù)庫來說更容易管理瘤袖。

Consul

Consul是HashiCorp公司推出的一個(gè)開源工具衣摩。

  • Consul是用Go語言編寫的,所以無法像Eureka那樣直接引入jar包就能集成捂敌,它還需要去服務(wù)器中進(jìn)行額外的安裝艾扮。
  • 除了注冊(cè)中心的功能之外既琴,Consul還能起到配置中心的作用。Consul它保證的是CP泡嘴,使用Raft協(xié)議甫恩,要求必須有過半的結(jié)點(diǎn)都寫入成功才算是注冊(cè)成功了,并且它也有Master和Follower的概念酌予,在Master掛掉后磺箕,也需要自己內(nèi)部進(jìn)行。

etcd(待續(xù))

對(duì)比Spring Cloud抛虫,Kubernetes也提供完整的分布式微服務(wù)管理框架松靡,幾乎所有組件都有對(duì)應(yīng)的產(chǎn)品,其中etcd也可以提供類似Eureka的注冊(cè)中心莱褒。
在Go生態(tài)中击困,還可以選擇基于etcd作為注冊(cè)中心,etcd是由CoreOS團(tuán)隊(duì)維護(hù)的广凸、高可用分布式鍵值存儲(chǔ)數(shù)據(jù)庫阅茶,可用于為集群提供配置和服務(wù)發(fā)現(xiàn)功能,Google開源的容器管理工具Kuberbetes就是基于etcd的谅海。
和Consul一樣脸哀,etcd也是基于Raft協(xié)議作為分布式一致性算法來解決領(lǐng)導(dǎo)者選舉和日志復(fù)制問題,同樣也是基于Go語言編寫扭吁。
etcd也支持代理模式(Proxy)撞蜂,只不過在etcd中,代理模式和Consul的客戶端代理模式類似侥袜,安裝在部署服務(wù)的節(jié)點(diǎn)上蝌诡,用來轉(zhuǎn)發(fā)請(qǐng)求到etcd集群,本身不存儲(chǔ)任何數(shù)據(jù)枫吧,etcd集群相當(dāng)于Consul中以服務(wù)端模式運(yùn)行的Consul集群浦旱,通常要求配置三個(gè)及以上節(jié)點(diǎn)(不要太多,3~5就夠了九杂,以便可用性和性能上達(dá)到平衡)颁湖,負(fù)責(zé)真正的請(qǐng)求處理——服務(wù)注冊(cè)與發(fā)現(xiàn)。
在目前最新版本的etcd v3中例隆,通過網(wǎng)關(guān)模式(Gateway)取代了V2版本中的代理模式(Proxy)甥捺。
從服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)原理上來說,Consul和etcd的基本設(shè)計(jì)思路是一致的镀层,etcd更簡單镰禾,Consul則更像一個(gè)全棧的解決方案,功能比etcd要更豐富,比如支持可視化的Web UI管理界面吴侦、支持多數(shù)據(jù)庫中心谷饿、安全層面除了HTTPS外還支持ACL、更加全面的健康檢查功能妈倔、內(nèi)置DNS Server等,這些都是etcd所不具備的绸贡,但是更全面的功能往往意味著更高的復(fù)雜性盯蝴,針對(duì)微服務(wù)的服務(wù)注冊(cè)和發(fā)現(xiàn)場景,etcd完全夠用了听怕。

Spring Cloud全家桶的簡介

基于Spring Cloud的微服務(wù)架構(gòu)分析
  • Spring Cloud Config:配置管理工具包捧挺,讓你可以把配置放到遠(yuǎn)程服務(wù)器,集中化管理集群配置尿瞭,目前支持本地存儲(chǔ)闽烙、Git以及Subversion。
  • Spring Cloud Bus:事件声搁、消息總線黑竞,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化疏旨,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署很魂。
  • Eureka:云端服務(wù)發(fā)現(xiàn),一個(gè)基于REST的服務(wù)檐涝,用于定位服務(wù)遏匆,以實(shí)現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移。
  • Hystrix:熔斷器谁榜,容錯(cuò)管理工具幅聘,旨在通過熔斷機(jī)制控制服務(wù)和第三方庫的節(jié)點(diǎn),從而對(duì)延遲和故障提供更強(qiáng)大的容錯(cuò)能力。
  • Zuul:Zuul是在云平臺(tái)上提供動(dòng)態(tài)路由窃植,監(jiān)控帝蒿,彈性,安全等邊緣服務(wù)的框架撕瞧。Zuul相當(dāng)于是設(shè)備和Netflix流應(yīng)用的Web網(wǎng)站后端所有請(qǐng)求的前門陵叽。
  • Archaius:配置管理API,包含一系列配置管理API丛版,提供動(dòng)態(tài)類型化屬性巩掺、線程安全配置操作、輪詢框架页畦、回調(diào)機(jī)制等功能胖替。
  • Consul:封裝了Consul操作,Consul是一個(gè)服務(wù)發(fā)現(xiàn)與配置工具,與Docker容器可以無縫集成独令。
  • Spring Cloud for Cloud Foundry:通過Oauth2協(xié)議綁定服務(wù)到Cloud Foundry端朵,Cloud Foundry是VMware推出的開源PaaS云平臺(tái)。
  • Spring Cloud Sleuth:日志收集工具包燃箭,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作冲呢,為Spring Cloud應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案。
  • Spring Cloud Data Flow:大數(shù)據(jù)操作工具招狸,作為Spring XD的替代產(chǎn)品敬拓,它是一個(gè)混合計(jì)算模型,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式裙戏。
  • Spring Cloud Security:基于Spring Security的安全工具包乘凸,為你的應(yīng)用程序添加安全控制。
  • Spring Cloud ZooKeeper:操作ZooKeeper的工具包累榜,用于使用ZooKeeper方式的服務(wù)發(fā)現(xiàn)和配置管理营勤。
  • Spring Cloud Stream:數(shù)據(jù)流操作開發(fā)包,封裝了與Redis壹罚、Rabbit葛作、Kafka等發(fā)送接收消息。
  • Spring Cloud CLI:基于Spring Boot CLI渔嚷,可以讓你以命令行方式快速建立云組件进鸠。
  • Ribbon:提供云端負(fù)載均衡,有多種負(fù)載均衡策略可供選擇形病,可配合服務(wù)發(fā)現(xiàn)和斷路器使用客年。
  • Turbine:Turbine是聚合服務(wù)器發(fā)送事件流數(shù)據(jù)的一個(gè)工具,用來監(jiān)控集群下Hystrix的Metrics情況漠吻。
  • Feign:Feign是一種聲明式量瓜、模板化的HTTP客戶端。
  • Spring Cloud Task:提供云端計(jì)劃任務(wù)管理途乃、任務(wù)調(diào)度绍傲。
  • Spring Cloud Connectors:便于云端應(yīng)用程序在各種PaaS平臺(tái)連接到后端,如:數(shù)據(jù)庫和消息代理服務(wù)耍共。
  • Spring Cloud Cluster:提供Leadership選舉烫饼,如:ZooKeeper,Redis试读,Hazelcast杠纵,Consul等常見狀態(tài)模式的抽象和實(shí)現(xiàn)。
  • Spring Cloud Starters:Spring Boot式的啟動(dòng)項(xiàng)目钩骇,為Spring Cloud提供開箱即用的依賴管理比藻。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铝量,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子银亲,更是在濱河造成了極大的恐慌慢叨,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件务蝠,死亡現(xiàn)場離奇詭異拍谐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)馏段,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門赠尾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人毅弧,你說我怎么就攤上這事〉贝埃” “怎么了够坐?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長崖面。 經(jīng)常有香客問我元咙,道長,這世上最難降的妖魔是什么巫员? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任庶香,我火速辦了婚禮,結(jié)果婚禮上简识,老公的妹妹穿的比我還像新娘赶掖。我一直安慰自己,他們只是感情好七扰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布奢赂。 她就那樣靜靜地躺著,像睡著了一般颈走。 火紅的嫁衣襯著肌膚如雪膳灶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天立由,我揣著相機(jī)與錄音轧钓,去河邊找鬼。 笑死锐膜,一個(gè)胖子當(dāng)著我的面吹牛毕箍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枣耀,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霉晕,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼庭再!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牺堰,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤拄轻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后伟葫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恨搓,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年筏养,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斧抱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渐溶,死狀恐怖辉浦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茎辐,我是刑警寧澤宪郊,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拖陆,受9級(jí)特大地震影響弛槐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜依啰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一乎串、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧速警,春花似錦叹誉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸠匀,卻和暖如春蕉斜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缀棍。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工宅此, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爬范。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓父腕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親青瀑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子璧亮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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