初識SpringCloud

一、初識SpringCloud

微服務(wù)是一種架構(gòu)方式,最終肯定需要技術(shù)架構(gòu)去實施。

微服務(wù)的實現(xiàn)方式很多,但是最火的莫過于Spring Cloud了。為什么?

  • 后臺硬:作為Spring家族的一員,有整個Spring全家桶靠山,背景十分強大。
  • 技術(shù)強:Spring作為Java領(lǐng)域的前輩,可以說是功力深厚。有強力的技術(shù)團隊支撐,一般人還真比不了
  • 群眾基礎(chǔ)好:可以說大多數(shù)程序員的成長都伴隨著Spring框架,試問:現(xiàn)在有幾家公司開發(fā)不用Spring?SpringCloud與Spring的各個框架無縫整合,對大家來說一切都是熟悉的配方,熟悉的味道。
  • 使用方便:相信大家都體會到了SpringBoot給我們開發(fā)帶來的便利,而SpringCloud完全支持SpringBoot的開發(fā),用很少的配置就能完成微服務(wù)框架的搭建
1.1 簡介

SpringCloud是Spring旗下的項目之一,官網(wǎng)地址

Spring最擅長的就是集成,把世界上最好的框架拿過來,集成到自己的項目中。

SpringCloud也是一樣,它將現(xiàn)在非常流行的一些技術(shù)整合到一起,實現(xiàn)了諸如:配置管理,服務(wù)發(fā)現(xiàn),智能路由,負(fù)載均衡,熔斷器,控制總線,集群狀態(tài)等等功能。其主要涉及的組件包括:

netflix

  • Eureka:注冊中心

  • Zuul:服務(wù)網(wǎng)關(guān)

  • Ribbon:負(fù)載均衡

  • Feign:服務(wù)調(diào)用

  • Hystix:熔斷器

以上只是其中一部分,架構(gòu)圖:


1.2 版本

SpringCloud的版本命名比較特殊,因為它不是一個組件,而是許多組件的集合,它的命名是以A到Z的為首字母的一些單詞組成,為英國倫敦地鐵站名稱

1.3 SpringCloud和SpringBoot是什么關(guān)系
  • SpringBoot專注于快速方便的開發(fā)單個個體微服務(wù)。

  • SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個個單體微服務(wù)整合并管理起來,為各個微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等集成服務(wù)

  • SpringBoot可以離開SpringCloud獨立使用開發(fā)項目,但是SpringCloud離不開SpringBoot,屬于依賴的關(guān)系.

  • SpringBoot專注于快速、方便的開發(fā)單個微服務(wù)個體,SpringCloud關(guān)注全局的服務(wù)治理框架。

二、Dubbo是怎么到SpringCloud的?哪些優(yōu)缺點讓你去技術(shù)選型

2.1 SpringCloud VS Dubbo

最大區(qū)別:SpringCloud拋棄了Dubbo的RPC通信,采用的是基于HTTP的REST方式。
嚴(yán)格來說,這兩種方式各有優(yōu)劣。雖然從一定程度上來說,后者犧牲了服務(wù)調(diào)用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務(wù)提供方和調(diào)用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調(diào)快速演化的微服務(wù)環(huán)境下,顯得更加合適。

品牌機與組裝機的區(qū)別
很明顯,Spring Cloud的功能比DUBBO更加強大,涵蓋面更廣,而且作為Spring的拳頭項目,它也能夠與Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring項目完美融合,這些對于微服務(wù)而言是至關(guān)重要的。使用Dubbo構(gòu)建的微服務(wù)架構(gòu)就像組裝電腦,各環(huán)節(jié)我們的選擇自由度很高,但是最終結(jié)果很有可能因為一條內(nèi)存質(zhì)量不行就點不亮了,總是讓人不怎么放心,但是如果你是一名高手,那這些都不是問題;而Spring Cloud就像品牌機,在Spring Source的整合下,做了大量的兼容性測試,保證了機器擁有更高的穩(wěn)定性,但是如果要在使用非原裝組件外的東西,就需要對其基礎(chǔ)有足夠的了解。

社區(qū)支持與更新力度
最為重要的是,DUBBO停止了5年左右的更新,雖然2017.7重啟了。對于技術(shù)發(fā)展的新需求,需要由開發(fā)者自行拓展升級(比如當(dāng)當(dāng)網(wǎng)弄出了DubboX),這對于很多想要采用微服務(wù)架構(gòu)的中小軟件組織,顯然是不太合適的,中小公司沒有這么強大的技術(shù)能力去修改Dubbo源碼+周邊的一整套解決方案,并不是每一個公司都有阿里的大牛+真實的線上生產(chǎn)環(huán)境測試過。

2.2 總結(jié) Cloud 與 Dubbo

問題:
曾風(fēng)靡國內(nèi)的開源 RPC 服務(wù)框架 Dubbo 在重啟維護(hù)后,令許多用戶為之雀躍,但同時,也迎來了一些質(zhì)疑的聲音?;ヂ?lián)網(wǎng)技術(shù)發(fā)展迅速,Dubbo 是否還能跟上時代?Dubbo 與 Spring Cloud 相比又有何優(yōu)勢和差異?是否會有相關(guān)舉措保證 Dubbo 的后續(xù)更新頻率?

人物:Dubbo重啟維護(hù)開發(fā)的劉軍,主要負(fù)責(zé)人之一

劉軍,阿里巴巴中間件高級研發(fā)工程師,主導(dǎo)了 Dubbo 重啟維護(hù)以后的幾個發(fā)版計劃,專注于高性能 RPC 框架和微服務(wù)相關(guān)領(lǐng)域。曾負(fù)責(zé)網(wǎng)易考拉 RPC 框架的研發(fā)及指導(dǎo)在內(nèi)部使用,參與了服務(wù)治理平臺、分布式跟蹤系統(tǒng)、分布式一致性框架等從無到有的設(shè)計與開發(fā)過程。

三、參考資料

  1. 官網(wǎng):https://spring.io/projects/spring-cloud
  2. 參考書: https://springcloud.cc/spring-cloud-netflix.html
  3. 中文社區(qū):http://springcloud.cn/
  4. 中文網(wǎng): https://springcloud.cc/

四、SpringCloud國內(nèi)使用情況

  1. 國內(nèi)公司


  2. 阿里云


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容