




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章微服務架構與SpringCloud《SpringCloud微服務架構開發(第2版)》學習目標/Target了解系統架構的演變,能夠簡述單體應用架構、垂直應用架構、SOA的特點了解微服務架構的特點,能夠簡述微服務架構的特點熟悉微服務架構中的常見概念,能夠簡述微服務架構中服務注冊與發現、服務調用、負載均衡、API網關、服務容錯和鏈路追蹤的概念了解常見的微服務框架,能夠簡述ApacheServiceComb、SpringCloud、SpringCloudAlibaba的概念學習目標/Target了解SpringCloud概述,能夠簡述SpringCloud的特點熟悉SpringCloud核心組件和架構,能夠簡述Spring
Cloud常用組件的作用了解SpringCloud版本說明,能夠簡述SpringCloud新舊版本命名方式章節概述/Summary隨著社會進步和科技發展,人們對互聯網產品的需求不斷增加。面對日益復雜的業務需求,如何降低業務之間的耦合性、快速部署項目、輕松且持續改進項目是互聯網產品急需解決的問題。為了解決這個問題微服務架構應運而生,SpringCloud是目前主流的微服務架構之一。本章將引領讀者深入了解微服務架構和SpringCloud。目錄/Contents1.11.2微服務架構簡介初識SpringCloud1.3SpringCloud版本說明微服務架構簡介1.11.1
微服務架構簡介系統架構是指一個系統的組織結構或設計,其定義了系統的組件、模塊、接口等,在系統中起到指導和約束的作用。微服務架構是當前常見的系統架構,它可以將系統模塊化,使得每個模塊都可以獨立部署、運行并進行組合,從而更好地實現系統的可擴展性、高可用性和容錯性,并且可以更加靈活地適應不同的業務場景。微服務架構是通過一系列的演變過程逐步形成的,下面將對系統架構的演變,以及微服務架構的相關知識進行講解。1.1.1
系統架構的演變先定一個小目標!
先定一個小目標!了解系統架構的演變,能夠簡述單體應用架構、垂直應用架構、SOA和微服務架構的特點1.1.1
系統架構的演變隨著互聯網的飛速發展和技術的日益演進,系統架構也在不斷演變。從最初的單體應用架構,到如今廣受歡迎的微服務架構,系統架構一直在探求創新,以提高系統的可擴展性、可維護性和可用性,以應對業務需求和用戶體驗的不斷變化。1.1.1
系統架構的演變單體應用架構指的是所有服務或者功能都封裝在一個應用中的架構,即應用程序所有業務場景的表示層、業務邏輯層和數據訪問層都在一個工程中進行開發、部署和運行。在單體應用架構中,應用程序的各個模塊通過方法調用或共享內存等方式進行通信,通常共享相同的數據庫,應用程序的邏輯和數據都集中在一起。單體應用架構1.1.1
系統架構的演變1.1.1
系統架構的演變優點項目架構簡單,技術結構單一,周期短,前期用人成本低。缺點代碼可讀性、可維護性和可擴展性下降。系統性能擴展只能通過擴展集群結點。應用中的任何一個Bug都有可能導致整個系統宕機。1.1.1
系統架構的演變垂直應用架構是一種將應用程序按照業務邏輯或模塊進行分解和設計的架構方式。針對單體應用架構存在的問題,可以使用垂直應用架構來解決。垂直應用架構將單體應用拆分成若干個獨立的小應用,每個小應用單獨部署到不同的服務器上,以提升效率。垂直應用架構1.1.1
系統架構的演變1.1.1
系統架構的演變優點拆分成多個應用,分別部署到不同的服務器,減輕服務器壓力。對獨立的Web應用可以單獨進行優化,方便水平擴展,提高容錯率。缺點系統之間相互獨立,無法直接進行相互調用。不同的系統可能存在重復的開發任務,出現數據冗余、代碼冗余、功能冗余等問題。1.1.1
系統架構的演變SOA(Service-OrientedArchitecture,面向服務的體系結構)是一個組件模型,基于SOA可以將系統不同功能單元拆分成服務,這些服務之間通過定義良好的接口和契約進行聯系,可以根據需求通過網絡對松散耦合的粗粒度應用組件(服務)進行分布式部署、組合和使用,從而可以更加靈活、高效地實現服務的設計、開發、部署和管理。SOA1.1.1
系統架構的演變1.1.1
系統架構的演變優點基于SOA的應用各個服務之間的耦合度較低,可讀性及可維護性比較好。缺點抽取服務的粒度較大,服務提供方與調用方接口耦合度較高,調用關系錯綜復雜。1.1.1
系統架構的演變微服務架構是一種系統架構的設計風格,微服務架構提倡將一個大型、復雜的應用系統拆分成多個獨立的小型服務,每個服務都可以獨立構建、運行、部署、擴展和維護。服務之間通過輕量級的通信機制協同工作,最終組成一個完整的應用系統。微服務架構在某種程度上是面向服務的架構SOA繼續發展的下一步,微服務架構更加強調服務的徹底拆分。微服務架構1.1.1
系統架構的演變1.1.1
系統架構的演變優點通過服務的原子化拆分,每個服務可以獨立打包、部署和升級,小團隊的交付周期將縮短,運維成本也將大幅度下降。缺點對技術成本高,需要解決系統的容錯、分布式事務等問題。如果微服務過多,會造成服務管理成本提高,不利于系統維護,服務拆分粒度過細也會導致系統變得凌亂。1.1.2微服務架構的特點先定一個小目標!
先定一個小目標!了解微服務架構的特點,能夠簡述微服務架構的特點1.1.2微服務架構的特點微服務架構和SOA從功能角度來看有相似之處,兩者將系統功能進行抽象,采用分布式系統架構的方式來實現不同應用程序之間的集成。微服務架構可以被視作SOA的升華,通過更加注重“業務組件化和服務化”的思想來改進SOA。采用微服務架構后,一個原本的業務系統會被拆分成多個小型應用程序,這些應用程序可以獨立地進行開發、設計和運行。1.1.2微服務架構的特點微服務架構能夠成為目前最主流的架構之一,主要得益于它如下的特點。復雜度可控每個服務專注于特定的業務功能,每個服務的代碼庫更小,復雜度更低,更容易進行維護。便于部署和維護由于每個模塊只關注自身的功能,修改時只需要關注相關模塊。技術選型靈活允許開發人員根據項目業務需求和團隊特點,選擇不同的編程語言和工具進行開發和部署。易于擴展擴展新功能只需要新建一個對應的獨立數據庫和新的模塊,不需要在現有模塊上進行修改。易于容錯故障會被隔離在單個服務中,其他服務可以繼續正常運行,不會受到故障的影響。1.1.3微服務架構的常見概念先定一個小目標!
先定一個小目標!熟悉微服務架構中的常見概念,能夠簡述微服務架構中服務注冊與發現、服務調用、負載均衡、API網關、服務容錯和鏈路追蹤的概念1.1.3微服務架構的常見概念微服務架構的主要目的是實現業務服務的解耦。隨著系統業務的日趨復雜,使得服務之間的調用關系變得越來越復雜。同時,服務之間的遠程通信也會因為存在網絡通信問題而變得更加復雜。針對這種情況,需要在微服務架構中進行服務治理,以簡化服務之間的通信關系,提高整體系統的可靠性和穩定性。1.1.3微服務架構的常見概念服務注冊中心:讓所有的微服務在啟動時將自身信息如地址、版本、負載均衡策略等注冊到其中,同時微服務也可以從服務注冊中心上查詢獲取其他微服務的信息。服務注冊:服務實例將自身服務信息注冊到注冊中心,以及暴露服務自身狀態以及訪問協議等信息。服務發現:服務實例請求注冊中心獲取所依賴服務信息。1.服務注冊與發現1.1.3微服務架構的常見概念目前主流的遠程調用技術包括基于HTTP的RESTful接口和基于TCP的RPC協議。REST(RepresentationalStateTransfer,表述性狀態轉移)是一種基于HTTP調用的標準化格式,可以通過標準的HTTP方法進行調用,有良好的查錯機制,尤其適合在跨域調用時使用。RESTful是指遵循REST風格的Web服務,可以使得客戶端和服務器之間的交互更加簡單、直觀。RPC(RemoteProcedureCalls,遠程過程調用)協議是一種進程間通信方式,可以讓遠程服務調用像調用本地服務一樣簡單和透明。2.服務調用1.1.3微服務架構的常見概念負載均衡是高可用網絡基礎架構的關鍵組件,通常用于將工作負載分配到多個服務器來提高網站、應用、數據庫或其他服務的性能和可靠性。在微服務架構中,因為服務之間的負載大小可能不同,如果不通過合理的分配負載到各個服務實例中,能導致某些服務實例過載而引發服務性能下降、錯誤率增加、連鎖故障等問題,甚至可能引起整個系統的崩潰。3.負載均衡1.1.3微服務架構的常見概念微服務架構中不同的服務一般會有不同的網絡地址,隨著業務的新增,系統中的服務日趨增多,外部客戶端調用不同微服務的接口可能會面臨以下問題。客戶端需要調用多個不同的網絡地址,增加難度。在某些場景下,可能存在跨域請求問題。每個微服務都需要單獨進行身份認證。4.API網關1.1.3微服務架構的常見概念API網關的基本功能包括統一接入、安全防護、協議適配、流量管控、長短鏈接支持和容錯能力等,它可以將所有API調用統一接入到API網關層,由API網關統一接入和輸出,各個API服務提供團隊就可以專注于自己的業務邏輯處理。4.API網關1.1.3微服務架構的常見概念1.1.3微服務架構的常見概念在微服務架構中,一個請求往往需要調用多個服務,若其中的某個服務不可用,在沒有做服務容錯的情況下,有可能會導致一連串服務不可用,從而引發服務雪崩現象,而服務容錯就是確保系統在出現服務故障時,能夠具備自我修復和自我保護的能力。可采用多種技術手段,如重試機制、熔斷機制、限流機制、降級機制等來實現服務容錯,以確保系統具備高可用性和穩定性。5.服務容錯1.1.3微服務架構的常見概念在微服務架構中,由于服務之間的相互調用和依賴關系十分復雜,一旦出現故障或異常,排查問題可能非常困難。通過鏈路追蹤,可以對服務調用鏈進行跟蹤和監測,以快速定位和解決潛在的問題,提高服務的運行效率和可靠性。6.鏈路追蹤1.1.4
常見的微服務框架先定一個小目標!
先定一個小目標!了解常見的微服務框架,能夠說出ApacheServiceComb、SpringCloud、SpringCloudAlibaba的概念1.1.4
常見的微服務框架ApacheServiceComb常見微服務框架業界第一個Apache微服務頂級項目,提供了一站式的微服務開源解決方案。SpringCloud由SpringPivotal團隊開發的一個構建分布式系統的開源框架,以SpringBoot為基礎。SpringCloudAlibabaSpringCloud的衍生項目,集成了Alibaba開源的多個微服務產品。1.1.4
常見的微服務框架上述三個框架都能夠用于構建分布式微服務系統。ServiceComb偏向于模塊化和高可用方面。SpringCloud偏向于簡單易用、靈活配置方面。SpringCloudAlibaba則集成了更多的Alibaba開源的產品組件,能夠提供更全面、更完整的解決方案。當前SpringCloud和SpringCloudAlibaba的應用相對更廣泛,后續將主要對SpringCloud和SpringCloudAlibaba提供的微服務開發解決方案進行講解。初識SpringCloud1.21.2.1
SpringCloud概述先定一個小目標!
先定一個小目標!了解SpringCloud概述,能夠說出SpringCloud的特點1.2.1
SpringCloud概述SpringCloud是一系列框架的集合,它基于SpringBoot開發的便利性簡化了分布式系統基礎設施的開發,如服務發現與注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用SpringBoot的開發風格做到一鍵啟動和部署。SpringCloud并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。1.2.1
SpringCloud概述0102030405Spring生態圈中的一員,SpringCloud中包含了近20個子項目。繼承了SpringBoot快速構建和自動化配置的優點。采用模塊化開發的方式,每個模塊獨立開發運行,互不干擾。每個模塊通常都是一個獨立的SpringBoot項目,模塊的功能是橫向開發的。提供了用于服務容錯的組件,以保證某個模塊出錯后能夠有備用模塊或者善后處理。功能強大,組件齊全快速啟動,方便部署模塊化部署,降低維護成本擴展性和穩定性較佳良好的容錯機制SpringCloud的特點1.2.2SpringCloud核心組件和體系結構先定一個小目標!
先定一個小目標!熟悉SpringCloud核心組件和體系結構,能夠簡述SpringCloud常見核心組件的作用SpringCloud的本質是在SpringBoot的基礎上增加了一堆微服務相關的規范,并對應用上下文進行了功能增強。目前除了Spring官方提供的具體實現之外,還有SpringCloudNetflix、SpringCloudAlibaba等實現。通過組件化的方式,SpringCloud將這些實現整合到一起構成全家桶式的微服務技術棧。1.2.2SpringCloud核心組件和體系結構1.2.2SpringCloud核心組件和體系結構組件名稱描述EurekaSpringCloudNetflix中的服務治理組件,包含服務注冊中心、服務注冊與發現機制的實現RibbonSpringCloudNetflix中的客戶端負載均衡組件HystrixSpringCloudNetflix的容錯管理組件,為服務中出現的延遲和故障提供強大的容錯能力FeignSpringCloudNetflix中實現負載均衡和服務調用的開源組件ZuulSpringCloudNetflix中的API網關組件,提供了智能路由、訪問過濾等功能SpringCloudNetflix的常用組件1.2.2SpringCloud核心組件和體系結構SpringCloudAlibaba的常用組件組件名稱描述NacosSpringCloudAlibaba中動態服務發現、配置和服務管理的組件,可以理解為服務注冊中心和配置中心的組合體SentinelSpringCloudAlibaba中面向分布式微服務架構的輕量級高可用流量控制組件,用于客戶端容錯保護SeataSpringCloudAlibaba的分布式事務解決方案,能夠在微服務架構下提供高性能且簡單易用的分布式事務服務1.2.2SpringCloud核心組件和體系結構SpringCloud的常用組件組件名稱描述ConsulSpringCloud中的服務注冊中心,用于實現分布式系統的服務發現與配置ConfigSpringCloud中的分布式配置中心,為微服務架構中各個微服務提供集中化的外部配置支持GatewaySpringCloud中的API網關,旨在提供一種簡單而有效的途徑來發送APISleuthSpringCloud中的分布式系統服務鏈追蹤組件OpenFeignSpringCloud中的聲明式服務調用與負載均衡組件1.2.2SpringCloud核心組件和體系結構SpringCloud通過集成各種組件和開源項目,提供了一整套完整的微服務架構解決方案,其中包括服務注冊與發現、配置中心、負載均衡、斷路器、網關等多種組件和功能,這些組件和功能相互協作,構成了SpringCloud的體系結構。1.2.2SpringCloud核心組件和體系結構SpringCloud版本說明1.21.3
SpringCloud版本說明先定一個小目標!
先定一個小目標!了解SpringCloud版本說明,能夠簡述SpringCloud新舊版本號定義方式1.1.3微服務架構的常見概念SpringCloud早期的版本通常以“版本名稱+小版本名稱”的格式命名,其中版本名稱以倫敦的地鐵站名稱的首字母A~Z依次命名。小版本名稱通常有BUILD-SNAPSHOT(開發的快照版本)、M(里程碑版本)、RELEASE(候選發布版本)、SR(正式修訂版本)。當SpringCloud版本的發布內容積累到臨界點或者一個嚴重Bug解決后,就會發布一個ServiceReleases版
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧教室安全管理制度
- 本科考試題及答案
- 保密考試題及答案下載
- 拔河培訓考試題及答案
- vte預防考試題及答案
- excel中??荚囶}及答案
- 廚房衛生制度及管理制度
- 婦幼保健院經濟管理制度
- 北京奧運會交通管理制度
- 景區安全保障管理制度
- 2025年四川省高考物理試卷真題(含答案)
- 數據庫應用技術-第三次形考作業(第10章~第11章)-國開-參考資料
- FZ/T 13045-2017棉錦混紡本色布
- GB∕T 8110-2020 熔化極氣體保護電弧焊用非合金鋼及細晶粒鋼實心焊絲
- 【完美排版】山東科技出版社二年級下冊綜合實踐活動教案
- 公共政策學(第三版)-課件
- 齊魯醫學Lisfranc-損傷
- 大型鋼網架整體提升施工工法
- 干熄焦爐內固_氣流動與傳熱數值模擬畢業論文
- 公司股東變更登記申請書(一變一)
- 供應鏈金融業務工作開展情況總結匯報
評論
0/150
提交評論