(最新整理)SpringCloud課件_第1頁
(最新整理)SpringCloud課件_第2頁
(最新整理)SpringCloud課件_第3頁
(最新整理)SpringCloud課件_第4頁
(最新整理)SpringCloud課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、(最新整理)SpringCloud課件2021/7/261微服務(wù)Spring Cloud介紹2021/7/262主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/263單體應(yīng)用2021/7/264單體應(yīng)用優(yōu)化2021/7/265加入ESB2021/7/266微服務(wù)架構(gòu)2021/7/267主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、F

2、eign介紹八、Zuul介紹九、Config介紹2021/7/268什么是微服務(wù)微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值。每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級(jí)的通信機(jī)制互相溝通(通常是基于HTTP的RESTful API)。每個(gè)服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應(yīng)盡量避免統(tǒng)一的、集中式的服務(wù)管理機(jī)制,對(duì)具體的一個(gè)服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對(duì)其進(jìn)行構(gòu)建。微服務(wù)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的各個(gè)微服務(wù)可被

3、獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力2021/7/269主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2610Spring CloudSpring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spr

4、ing Boot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包2021/7/2611Spring Cloud核心功能Eureka:基于REST服務(wù)的分布式中間件,主要用于服務(wù)管理。Ribbon:負(fù)載均衡框架。Hystrix:容錯(cuò)框架,通過添加延遲閥值以及容錯(cuò)的邏輯,來幫助我們控制分布式系統(tǒng)間組件的交互。Feign:一個(gè)REST客戶端,目的是為了簡(jiǎn)化Web Service客戶

5、端的開發(fā)Zuul:為微服務(wù)集群提供過代理、過濾、路由等功能。Config:分布式配置中心組件,支持配置服務(wù)放在配置服務(wù)的內(nèi)存中(即本地),也支持放在遠(yuǎn)程Git、SVN。2021/7/2612Spring Cloud組件架構(gòu)2021/7/2613主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2614EurekaEureka由兩個(gè)組件組成:Eureka服務(wù)器和Eureka客戶端。Eureka服務(wù)器用作服務(wù)注冊(cè)服務(wù)器。Eureka客戶端

6、是一個(gè)java客戶端,用來簡(jiǎn)化與服務(wù)器的交互、作為輪詢負(fù)載均衡器,并提供服務(wù)的故障切換支持。2021/7/2615Eureka架構(gòu)2021/7/2616Eureka集群架構(gòu)圖2021/7/2617主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2618Ribbon簡(jiǎn)介負(fù)載均衡框架,支持可插拔式的負(fù)載均衡規(guī)則支持多種協(xié)議,如HTTP、UDP等提供負(fù)載均衡客戶端2021/7/2619負(fù)載均衡器組件一個(gè)負(fù)載均衡器,至少提供以下功能:要維護(hù)

7、各個(gè)服務(wù)器的IP等信息根據(jù)特定邏輯選取服務(wù)器為了實(shí)現(xiàn)基本的負(fù)載均衡功能,Ribbon的負(fù)載均衡器有三大子模塊:RulePingServerList2021/7/2620Ribbon內(nèi)置的負(fù)載均衡規(guī)則RoundRobinRuleAvailabilityFilteringRuleWeightedResponseTimeRuleZoneAvoidanceRuleBestAvailableRuleRandomRuleRetryRule2021/7/2621Ribbon程序2021/7/2622主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ri

8、bbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2623Hystrix:為什么需要斷路器功能在微服務(wù)架構(gòu)中,我們將業(yè)務(wù)拆分成一個(gè)個(gè)的服務(wù),服務(wù)與服務(wù)之間可以相互調(diào)用(RPC)。為了保證其高可用,單個(gè)服務(wù)又必須集群部署。由于網(wǎng)絡(luò)原因或者自身的原因,服務(wù)并不能保證服務(wù)的100%可用,如果單個(gè)服務(wù)出現(xiàn)問題,調(diào)用這個(gè)服務(wù)就會(huì)出現(xiàn)網(wǎng)絡(luò)延遲,此時(shí)若有大量的網(wǎng)絡(luò)涌入,會(huì)形成任務(wù)累計(jì),導(dǎo)致服務(wù)癱瘓,甚至導(dǎo)致服務(wù)“雪崩”。為了解決這個(gè)問題,就出現(xiàn)斷路器模型。2021/7/2624Hystrix:作用1.斷路器機(jī)制:當(dāng)Hystrix Command請(qǐng)求后端服務(wù)

9、失敗數(shù)量超過一定比例(默認(rèn)50%), 斷路器會(huì)切換到開路狀態(tài)(Open). 這時(shí)所有請(qǐng)求會(huì)直接失敗而不會(huì)發(fā)送到后端服務(wù). 斷路器保持在開路狀態(tài)一段時(shí)間后(默認(rèn)5秒), 自動(dòng)切換到半開路狀態(tài)(HALF-OPEN). 這時(shí)會(huì)判斷下一次請(qǐng)求的返回情況, 如果請(qǐng)求成功, 斷路器切回閉路狀態(tài)(CLOSED), 否則重新切換到開路狀態(tài)(OPEN). Hystrix的斷路器就像我們家庭電路中的保險(xiǎn)絲, 一旦后端服務(wù)不可用, 斷路器會(huì)直接切斷請(qǐng)求鏈, 避免發(fā)送大量無效請(qǐng)求影響系統(tǒng)吞吐量, 并且斷路器有自我檢測(cè)并恢復(fù)的能力.2.Fallback:Fallback相當(dāng)于是降級(jí)操作. 對(duì)于查詢操作, 我們可以實(shí)現(xiàn)一

10、個(gè)fallback方法, 當(dāng)請(qǐng)求后端服務(wù)出現(xiàn)異常的時(shí)候, 可以使用fallback方法返回的值. fallback方法的返回值一般是設(shè)置的默認(rèn)值或者來自緩存.3.資源隔離:在Hystrix中, 主要通過線程池來實(shí)現(xiàn)資源隔離. 通常在使用的時(shí)候我們會(huì)根據(jù)調(diào)用的遠(yuǎn)程服務(wù)劃分出多個(gè)線程池. 例如調(diào)用產(chǎn)品服務(wù)的Command放入A線程池, 調(diào)用賬戶服務(wù)的Command放入B線程池. 這樣做的主要優(yōu)點(diǎn)是運(yùn)行環(huán)境被隔離開了. 這樣就算調(diào)用服務(wù)的代碼存在bug或者由于其他原因?qū)е伦约核诰€程池被耗盡時(shí), 不會(huì)對(duì)系統(tǒng)的其他服務(wù)造成影響. 但是帶來的代價(jià)就是維護(hù)多個(gè)線程池會(huì)對(duì)系統(tǒng)帶來額外的性能開銷. 2021/

11、7/2625Hystrix:命令執(zhí)行流程2021/7/2626主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2627Feign介紹Feign是一個(gè)聲明式的偽Http客戶端,它使得寫Http客戶端變得更簡(jiǎn)單。使用Feign,只需要?jiǎng)?chuàng)建一個(gè)接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的編碼器和解碼器。Feign整合了Ribbon 與Hystrix,并和Eureka結(jié)合,能夠?qū)崿F(xiàn)負(fù)載

12、均衡和斷路器等效果。簡(jiǎn)而言之:Feign 采用的是基于接口的注解Feign 整合了ribbon、 Hystrix2021/7/2628主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2629Zuul介紹Zuul的主要功能是路由轉(zhuǎn)發(fā)和過濾器。路由功能是微服務(wù)的一部分,比如api/user轉(zhuǎn)發(fā)到到user服務(wù),/api/shop轉(zhuǎn)發(fā)到到shop服務(wù)。zuul默認(rèn)和Ribbon結(jié)合實(shí)現(xiàn)了負(fù)載均衡的功能, 類似于nginx轉(zhuǎn)發(fā)是Netfli

13、x的一個(gè)子項(xiàng)目提供代理、過濾、路由等功能2021/7/2630Zuul:Hystrix 和Ribbon 支持 Zuul天生就擁有線程隔離和斷路器的自我保護(hù)功能, 以及對(duì)服務(wù)調(diào)用的客戶端負(fù)載均衡功能。但是需要注意, 當(dāng)使用path與url的映射關(guān)系來配置路由規(guī)則的時(shí)候, 對(duì)于路由轉(zhuǎn)發(fā)的請(qǐng)求不會(huì)采用HystrixCommond來包裝, 所以這類路由請(qǐng)求沒有線程隔離和斷路器的保護(hù),并且也不會(huì)有負(fù)載均衡的能力。因此,我們?cè)谑褂肸uul的時(shí)候盡量使用path和serviceId的組合來進(jìn)行配置,這樣不僅可以保證API網(wǎng)關(guān)的健壯和穩(wěn)定,也能用到Ribbon的客戶端負(fù)載均衡功能2021/7/2631Zuul過濾器運(yùn)行機(jī)制2021/7/2632項(xiàng)目結(jié)構(gòu)2021/7/2633加入Zuul后的集群2021/7/2634主要內(nèi)容一、傳統(tǒng)服務(wù)架構(gòu)與微服務(wù)架構(gòu)二、什么是微服務(wù)三、SpringCloud介紹四、Eureka介紹五、Ribbon介紹六、Hystric介紹七、Feign介紹八、Zuul介紹九、Config介紹2021/7/2635Config介紹用來為分布式系統(tǒng)中的基礎(chǔ)設(shè)施和微服務(wù)應(yīng)用提供集中化的外部配置支持, 它分為服務(wù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論