Spring Cloud與分布式系統(tǒng)簡析
本文不是講解如何使用Spring Cloud的教程,而是探討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)架構(gòu)走向分布式已經(jīng)是服務(wù)器開發(fā)領(lǐng)域解決該問題唯一的出路,然而分布式系統(tǒng)由于天生的復(fù)雜度,并不像開發(fā)單體應(yīng)用一樣把框架一堆就能搞定,因此各大互聯(lián)網(wǎng)公司都在投入技術(shù)力量研發(fā)自己的基礎(chǔ)設(shè)施。這里面比較有名的如阿里的開源項目dubbo, Netflix開發(fā)的一系列服務(wù)框架。在這種“百花齊放”、重復(fù)造輪子的狀況下,必然要出現(xiàn)一種統(tǒng)一的標(biāo)準(zhǔn)來簡化分布式系統(tǒng)的開發(fā),Spring Cloud應(yīng)運而生。
Spring Cloud是什么
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署。Spring并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。
Spring Cloud組成
Spring Cloud的子項目,大致可分成兩類,一類是對現(xiàn)有成熟框架”Spring Boot化”的封裝和抽象,也是數(shù)量最多的項目;第二類是開發(fā)了一部分分布式系統(tǒng)的基礎(chǔ)設(shè)施的實現(xiàn),如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。對于我們想快速實踐微服務(wù)的開發(fā)者來說,第一類子項目就已經(jīng)足夠使用,如:
Spring Cloud Netflix 是對Netflix開發(fā)的一套分布式服務(wù)框架的封裝,包括服務(wù)的發(fā)現(xiàn)和注冊,負(fù)載均衡、斷路器、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)基礎(chǔ)設(shè)施,使用Spring Cloud一站式解決方案能在從容應(yīng)對業(yè)務(wù)發(fā)展的同時大大減少開發(fā)成本。同時,隨著近幾年微服務(wù)架構(gòu)和docker容器概念的火爆,也會讓Spring Cloud在未來越來越“云”化的軟件開發(fā)風(fēng)格中立有一席之地,尤其是在目前五花八門的分布式解決方案中提供了標(biāo)準(zhǔn)化的、全站式的技術(shù)方案,意義可能會堪比當(dāng)前Servlet規(guī)范的誕生,有效推進(jìn)服務(wù)端軟件系統(tǒng)技術(shù)水平的進(jìn)步。
總結(jié)
以上就是本文關(guān)于Spring Cloud與分布式系統(tǒng)簡析的全部內(nèi)容,希望能對大家有所幫助。有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝大家對本站的支持。
相關(guān)文章
使用okhttp替換Feign默認(rèn)Client的操作
這篇文章主要介紹了使用okhttp替換Feign默認(rèn)Client的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10幾句話說清session,cookie和token的區(qū)別及說明
這篇文章主要介紹了幾句話說清session,cookie和token的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Mybatis中的resultType和resultMap查詢操作實例詳解
resultType是直接表示返回類型的,而resultMap則是對外部ResultMap的引用,resultMap解決復(fù)雜查詢是的映射問題。這篇文章主要介紹了Mybatis中的resultType和resultMap查詢操作實例詳解,需要的朋友可以參考下2016-09-09