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

下載本文檔

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

文檔簡介

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)、互相配合,為用戶提供最終價值。每個服務(wù)運行在其獨立的進程中,服務(wù)與服務(wù)間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful API)。每個服務(wù)都圍繞著具體業(yè)務(wù)進行構(gòu)建,并且能夠被獨立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應(yīng)盡量避免統(tǒng)一的、集中式的服務(wù)管理機制,對具體的一個服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對其進行構(gòu)建。微服務(wù)是一種架構(gòu)風(fēng)格,一個大型復(fù)雜軟件應(yīng)用由一個或多個微服務(wù)組成。系統(tǒng)中的各個微服務(wù)可被

3、獨立部署,各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個任務(wù)代表著一個小的業(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ā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spr

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

5、端的開發(fā)Zuul:為微服務(wù)集群提供過代理、過濾、路由等功能。Config:分布式配置中心組件,支持配置服務(wù)放在配置服務(wù)的內(nèi)存中(即本地),也支持放在遠程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由兩個組件組成:Eureka服務(wù)器和Eureka客戶端。Eureka服務(wù)器用作服務(wù)注冊服務(wù)器。Eureka客戶端

6、是一個java客戶端,用來簡化與服務(wù)器的交互、作為輪詢負載均衡器,并提供服務(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簡介負載均衡框架,支持可插拔式的負載均衡規(guī)則支持多種協(xié)議,如HTTP、UDP等提供負載均衡客戶端2021/7/2619負載均衡器組件一個負載均衡器,至少提供以下功能:要維護

7、各個服務(wù)器的IP等信息根據(jù)特定邏輯選取服務(wù)器為了實現(xiàn)基本的負載均衡功能,Ribbon的負載均衡器有三大子模塊:RulePingServerList2021/7/2620Ribbon內(nèi)置的負載均衡規(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ù)拆分成一個個的服務(wù),服務(wù)與服務(wù)之間可以相互調(diào)用(RPC)。為了保證其高可用,單個服務(wù)又必須集群部署。由于網(wǎng)絡(luò)原因或者自身的原因,服務(wù)并不能保證服務(wù)的100%可用,如果單個服務(wù)出現(xiàn)問題,調(diào)用這個服務(wù)就會出現(xiàn)網(wǎng)絡(luò)延遲,此時若有大量的網(wǎng)絡(luò)涌入,會形成任務(wù)累計,導(dǎo)致服務(wù)癱瘓,甚至導(dǎo)致服務(wù)“雪崩”。為了解決這個問題,就出現(xiàn)斷路器模型。2021/7/2624Hystrix:作用1.斷路器機制:當Hystrix Command請求后端服務(wù)

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

10、個fallback方法, 當請求后端服務(wù)出現(xiàn)異常的時候, 可以使用fallback方法返回的值. fallback方法的返回值一般是設(shè)置的默認值或者來自緩存.3.資源隔離:在Hystrix中, 主要通過線程池來實現(xiàn)資源隔離. 通常在使用的時候我們會根據(jù)調(diào)用的遠程服務(wù)劃分出多個線程池. 例如調(diào)用產(chǎn)品服務(wù)的Command放入A線程池, 調(diào)用賬戶服務(wù)的Command放入B線程池. 這樣做的主要優(yōu)點是運行環(huán)境被隔離開了. 這樣就算調(diào)用服務(wù)的代碼存在bug或者由于其他原因?qū)е伦约核诰€程池被耗盡時, 不會對系統(tǒng)的其他服務(wù)造成影響. 但是帶來的代價就是維護多個線程池會對系統(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是一個聲明式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要創(chuàng)建一個接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的編碼器和解碼器。Feign整合了Ribbon 與Hystrix,并和Eureka結(jié)合,能夠?qū)崿F(xiàn)負載

12、均衡和斷路器等效果。簡而言之: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默認和Ribbon結(jié)合實現(xiàn)了負載均衡的功能, 類似于nginx轉(zhuǎn)發(fā)是Netfli

13、x的一個子項目提供代理、過濾、路由等功能2021/7/2630Zuul:Hystrix 和Ribbon 支持 Zuul天生就擁有線程隔離和斷路器的自我保護功能, 以及對服務(wù)調(diào)用的客戶端負載均衡功能。但是需要注意, 當使用path與url的映射關(guān)系來配置路由規(guī)則的時候, 對于路由轉(zhuǎn)發(fā)的請求不會采用HystrixCommond來包裝, 所以這類路由請求沒有線程隔離和斷路器的保護,并且也不會有負載均衡的能力。因此,我們在使用Zuul的時候盡量使用path和serviceId的組合來進行配置,這樣不僅可以保證API網(wǎng)關(guān)的健壯和穩(wěn)定,也能用到Ribbon的客戶端負載均衡功能2021/7/2631Zuul過濾器運行機制2021/7/2632項目結(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論