SpringCloud 是什么域庇?
此處引用Spring Cloud與分布式系統(tǒng)文章,來探討Spring Cloud是什么覆积,以及它誕生的背景和意義?
背景
2008年以后听皿,國內(nèi)互聯(lián)網(wǎng)行業(yè)飛速發(fā)展,我們對軟件系統(tǒng)的需求已經(jīng)不再是過去”能用就行”這種很low的檔次了宽档,像搶紅包尉姨、雙十一這樣的活動不斷逼迫我們?nèi)ネ黄栖浖到y(tǒng)的性能上限,傳統(tǒng)的IT企業(yè)”能用就行”的開發(fā)思想已經(jīng)不能滿足互聯(lián)網(wǎng)高并發(fā)吗冤、大流量的性能要求又厉。系統(tǒng)架構走向分布式已經(jīng)是服務器開發(fā)領域解決該問題唯一的出路,然而分布式系統(tǒng)由于天生的復雜度椎瘟,并不像開發(fā)單體應用一樣把框架一堆就能搞定覆致,因此各大互聯(lián)網(wǎng)公司都在投入技術力量研發(fā)自己的基礎設施。這里面比較有名的如阿里的開源項目dubbo, Netflix開發(fā)的一系列服務框架肺蔚。在這種“百花齊放”煌妈、重復造輪子的狀況下,必然要出現(xiàn)一種統(tǒng)一的標準來簡化分布式系統(tǒng)的開發(fā)宣羊,Spring Cloud應運而生璧诵。
Spring Cloud是什么
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā)仇冯,如服務發(fā)現(xiàn)注冊之宿、配置中心、消息總線苛坚、負載均衡比被、斷路器坪创、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署姐赡。Spring并沒有重復制造輪子莱预,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務框架組合起來项滑,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理依沮,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包枪狂。
Spring Cloud組成
Spring Cloud的子項目危喉,大致可分成兩類,一類是對現(xiàn)有成熟框架”Spring Boot化”的封裝和抽象州疾,也是數(shù)量最多的項目辜限;第二類是開發(fā)了一部分分布式系統(tǒng)的基礎設施的實現(xiàn),如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色严蓖。對于我們想快速實踐微服務的開發(fā)者來說薄嫡,第一類子項目就已經(jīng)足夠使用,如:
Spring Cloud Netflix
是對Netflix開發(fā)的一套分布式服務框架的封裝颗胡,包括服務的發(fā)現(xiàn)和注冊毫深,負載均衡、斷路器毒姨、REST客戶端哑蔫、請求路由等。Spring Cloud Config
將配置信息中央化保存, 配置Spring Cloud Bus可以實現(xiàn)動態(tài)修改配置文件Spring Cloud Bus
分布式消息隊列弧呐,是對Kafka, MQ的封裝Spring Cloud Security
對Spring Security的封裝闸迷,并能配合Netflix使用Spring Cloud Zookeeper
對Zookeeper的封裝,使之能配置其它Spring Cloud的子項目使用
Spring Cloud前景
Spring Cloud對于中小型互聯(lián)網(wǎng)公司來說是一種福音俘枫,因為這類公司往往沒有實力或者沒有足夠的資金投入去開發(fā)自己的分布式系統(tǒng)基礎設施腥沽,使用Spring Cloud一站式解決方案能在從容應對業(yè)務發(fā)展的同時大大減少開發(fā)成本。同時崩哩,隨著近幾年微服務架構和Docker容器概念的火爆巡球,也會讓Spring Cloud在未來越來越“云”化的軟件開發(fā)風格中立有一席之地,尤其是在目前五花八門的分布式解決方案中提供了標準化的邓嘹、全站式的技術方案酣栈,意義可能會堪比當前Servlet規(guī)范的誕生,有效推進服務端軟件系統(tǒng)技術水平的進步汹押。
轉(zhuǎn)載來至Spring Cloud與分布式系統(tǒng)
> github地址:[Spring Boot 教程矿筝、技術棧、示例代碼](https://github.com/chinashuai/spring-boot-example-all)
