javascript
Spring Cloud的核心成员、以及架构实现详细介绍
微服務架構系列
高并發(fā)架構系列:服務注冊與發(fā)現(xiàn)的實現(xiàn)原理、及實現(xiàn)優(yōu)劣勢比較
阿里P8架構師談:Restful、SOAP、RPC、SOA、微服務之間的區(qū)別
阿里P8架構師談:微服務技術架構、監(jiān)控、Docker、服務治理等體系
阿里P8架構師談:Dubbo的詳細介紹、設計思路、以及4大適用場景
阿里P8架構師談:從單體架構、到SOA、再到微服務的架構設計詳解
阿里P8架構師談:Docker容器的原理、特征、基本架構、與應用場景
什么是微服務
微服務的概念源于Martin Fowler所寫的一篇文章“Microservices”。
微服務架構是一種架構模式,它提倡將單一應用程序劃分成一組小的服務,服務之間互相協(xié)調、互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中,服務與服務間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful
API)。每個服務都圍繞著具體業(yè)務進行構建,并且能夠被獨立地部署到生產環(huán)境、類生產環(huán)境等。另外,應盡量避免統(tǒng)一的、集中式的服務管理機制,對具體的一個服務而言,應根據(jù)業(yè)務上下文,選擇合適的語言、工具對其進行構建。
微服務是一種架構風格,一個大型復雜軟件應用由一個或多個微服務組成。系統(tǒng)中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在所有情況下,每個任務代表著一個小的業(yè)務能力。
SOA和微服務的區(qū)別
Martin Fowler提出來這一概念可以說把SOA的理念繼續(xù)升華,精進了一步。 微服務架構強調的第一個重點就是業(yè)務系統(tǒng)需要徹底的組件化和服務化,原有的單個業(yè)務系統(tǒng)會拆分為多個可以獨立開發(fā),設計,運行和運維的小應用。這些小應用之間通過服務完成交互和集成。
從服務粒度上,既然是微,必然微服務更倡導服務的細粒度,重用組合,甚至是每個操作(或方法)都是獨立開發(fā)的服務,足夠小到不能再進行拆分。而SOA沒有這么極致的要求,只需要接口契約的規(guī)范化,內部實現(xiàn)可以更粗粒度,微服務更多為了可擴充性、負載均衡以及提高吞吐量而去分解應用,但同時也引發(fā)了打破數(shù)據(jù)模型以及維護一致性的問題。
從部署方式上,這個是最大的不同,對比以往的Java
EE部署架構,通過展現(xiàn)層打包WARs,業(yè)務層劃分到JARs最后部署為EAR一個大包,而微服務則把應用拆分成為一個一個的單個服務,應用Docker技術,不依賴任何服務器和數(shù)據(jù)模型,是一個
全棧應用,可以通過自動化方式獨立部署,每個服務運行在自己的進程。
如果一句話來談SOA和微服務的區(qū)別,即微服務不再強調傳統(tǒng)SOA架構里面比較重的ESB企業(yè)服務總線,同時SOA的思想進入到單個業(yè)務系統(tǒng)內部實現(xiàn)真正的組件化。
微服務架構優(yōu)勢
1.粒度更細(可維護和效率)
在將應用分解,每一個微服務專注于單一功能,并通過定義良好的接口清晰表述服務邊界。由于體積小、復雜度低,每個微服務可由一個小規(guī)模開發(fā)團隊完全掌控,易于保持高可維護性和開發(fā)效率。
2.獨立部署
由于微服務具備獨立的運行進程,所以每個微服務也可以獨立部署。
3.容錯
在微服務架構下,故障會被隔離在單個服務中。若設計良好,其他服務可通過重試、平穩(wěn)退化等機制實現(xiàn)應用層面的容錯。
4.擴展
單塊架構應用也可以實現(xiàn)橫向擴展,就是將整個應用完整的復制到不同的節(jié)點。
什么是Spring Boot
Spring
Boot 框架是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化基于 Spring
應用的初始搭建以及開發(fā)過程。SpringBoot
框架使用了特定的方式來進行應用系統(tǒng)的配置,從而使開發(fā)人員不再需要耗費大量精力去定義模板化的配置文件。
什么是Spring Cloud
Spring Cloud 是一個基于 Spring Boot 實現(xiàn)的云應用開發(fā)工具,它為基于 JVM 的云應用開發(fā)中的配置管理、服務發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態(tài)管理等,是微服務的一種實現(xiàn)。
Spring Cloud的核心成員
1.Spring Cloud Netflix
Spring Cloud Netflix 集成眾多Netflix的開源軟件:Eureka, Hystrix, Zuul, Archaius,組成了微服務的最重要的核心組件。
2.Netflix Eureka
服務中心,用于服務注冊與發(fā)現(xiàn),一個基于 REST 的服務,用于定位服務。
3.Netflix Hystrix
熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節(jié)點,從而對延遲和故障提供更強大的容錯能力。
4.Netflix Zuul
Zuul 是在云平臺上提供動態(tài)路由,監(jiān)控,彈性,安全等邊緣服務的框架。
5.Netflix Archaius
配置管理API,包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能,可以實現(xiàn)動態(tài)獲取配置。
6.Spring Cloud Config
配置中心,利用git集中管理程序的配置。
7.Spring Cloud Bus
事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署。
8.Spring Cloud Ribbon
Ribbon是Netflix發(fā)布的負載均衡器,它有助于控制HTTP和TCP的客戶端的行為。為Ribbon配置服務提供者地址后,Ribbon就可基于某種負載均衡算法,自動地幫助服務消費者去請求。
Spring Cloud架構實現(xiàn)
通過這張圖,可以比較清楚的了解到各組件配置使用運行機制:
1、請求統(tǒng)一通過API網(wǎng)關(Zuul)來訪問內部服務.
2、網(wǎng)關接收到請求后,從注冊中心(Eureka)獲取可用服務
3、由Ribbon進行均衡負載后,分發(fā)到后端具體實例
4、微服務之間通過Feign進行通信處理業(yè)務
5、Hystrix負責處理服務超時熔斷
6、Turbine監(jiān)控服務間的調用和熔斷相關指標
微服務、Spring Cloud、Spring Boot三者關系
微服務是一種架構的理念,提出了微服務的設計原則,從理論為具體的技術落地提供了指導思想。
微服務目前主流就Spring Cloud和Dubbo,相關的比較也可以參考:阿里P8架構師談:微服務Dubbo和Spring Cloud架構設計、優(yōu)劣勢比較
你可能也喜歡:
總結
以上是生活随笔為你收集整理的Spring Cloud的核心成员、以及架构实现详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | 主题驱动的分子图表示对比学
- 下一篇: 技术动态 | 藏经阁计划发布一年,阿里知