更新時間:2021-06-23 16:36:46 來源:動力節(jié)點 瀏覽3461次
2008年以后,國內互聯(lián)網(wǎng)行業(yè)飛速發(fā)展,我們對軟件系統(tǒng)的需求已經(jīng)不再是過去”能用就行”這種很low的檔次了,像搶紅包、雙十一這樣的活動不斷逼迫我們去突破軟件系統(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 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正是對Netflix的多個開源組件進一步的封裝而成,同時又實現(xiàn)了和云端平臺,和Spring Boot開發(fā)框架很好的集成。
Spring Cloud是一個相對比較新的微服務框架,2016年才推出1.0的release版本.雖然Spring Cloud時間最短,但是相比Dubbo等RPC框架,Spring Cloud提供的全套的分布式系統(tǒng)解決方案。
Spring Cloud為開發(fā)者提供了在分布式系統(tǒng)(配置管理,服務發(fā)現(xiàn),熔斷,路由,微代理,控制總線,一次性token,全居瑣,leader選舉,分布式session,集群狀態(tài))中快速構建的工具,使用Spring Cloud的開發(fā)者可以快速的啟動服務或構建應用、同時能夠快速和云平臺資源進行對接。
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的子項目之一,主要內容是對Netflix公司一系列開源產(chǎn)品的包裝,它為Spring Boot應用提供了自配置的Netflix OSS整合。
通過一些簡單的注解,開發(fā)者就可以快速的在應用中配置一下常用模塊并構建龐大的分布式系統(tǒng)。它主要提供的模塊包括:服務發(fā)現(xiàn)(Eureka),斷路器(Hystrix),智能路由(Zuul),客戶端負載均衡(Ribbon)等。

Spring Cloud作為第二代微服務的代表性框架,已經(jīng)在國內眾多大中小型的公司有實際應用案例。許多公司的業(yè)務線全部擁抱Spring Cloud,部分公司選擇部分擁抱Spring Cloud。例如,拍拍貸資深架構師楊波老師就根據(jù)自己的實際經(jīng)驗以及對Spring Cloud的深入調研,并結合國內一線互聯(lián)網(wǎng)大廠的開源項目應用實踐結果,認為Spring Cloud技術棧中的有些組件離生產(chǎn)級開發(fā)尚有一定距離,最后提出了一個可供中小團隊參考的微服務架構技術棧,又被稱為“中國特色的微服務架構技術棧1.0”:

以上就是動力節(jié)點小編介紹的"線程的基本概念",希望對大家有幫助,想了解更多可查看Spring Cloud教程技術文檔,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務。