SpringCloud全家桶學習之概覽(一)


一、概覽

  根據百度百科的描述,微服務架構是一項在雲中部署應用和服務的新技術。而SpringCloud是微服務架構思想的一個具體實現,它為開發人員提供了構建分布式系統中一些常見模式的工具(服務注冊與發現、熔斷器、分布式配置、網關、控制總線等),SpringCloud是基於SpringBoot框架,它不是重復造輪子,而是將第三方實現的微服務應用的一些模塊集成,准確來說,SpringCloud是一個容器。

二、SpringCloud與Dubbo對比

  目前在工作中一直用的是Dubbo2.7,趁着空閑時間,學習一下SpringCloud,看了網上很多關於二者對比。

以下圖片及內容部分轉自(https://www.cnblogs.com/xishuai/archive/2018/04/13/dubbo-and-spring-cloud.htmlhttps://blog.csdn.net/zhangweiwei2020/article/details/78646252),如有侵權,請聯系刪除。

  打個比方:SpringCloud相當於整機,組件都相當完整;而Dubbo相當於組裝機,組件可以按自己需求自由選擇;整體來說,整機的性能有保證,組裝的機子更自由。

  

   Dubbo專注於RPC和服務治理,Spring Cloud則是一個微服務架構生態。

 三、兩者運行流程對比

(1)Dubbo

  每個組件都是需要部署在單獨的服務器上,GateWay用來接收前端請求、聚合服務,並批量調用后台原子服務、每個Service單獨與DB交互。

  

 

  ①GateWay:前置網關,具體業務操作,GateWay通過Dubbo提供的負載均衡機制自動完成(Dubbo本身並沒有提供網關)

    ②Service:原子服務,只提供該業務相關的原子服務

  ③Zookeeper:原子服務注冊到ZK上。

(2)SpringCloud

  

 

   ①所有請求都統一通過網關(Zuul)來訪問內部服務

  ②網關接收到請求后,從注冊中心(Eureka)獲取可用服務

  ③由Ribbon進行負載均衡后,分發到后端的具體實例

  ④微服務之間通過Feign進行通信業務處理

(3)總結

  ①業務部署方式相同,都需要一個前置網關來隔絕外部直接調用原子服務的風險。

  ②Dubbo需要自己開發一套API網關(目前我所在公司是公司開發網關API+分布式配置Disconf,disconf---分布式配置管理平台的搭建(linux版本)),而SpringCloud則可以通過Zuul配置即可完成網關定制。

(4)優缺點

Dubbo優點:

       ①支持RPC調用,性能較好

       ②支持多種序列化協議,如Hessian、Http、WebService

       ③Dubbo Admin后台管理功能強大,提供了權重調節、負載均衡等

       ④中文文檔比較全面

Dubbo不足:

       ①Registry嚴重依賴第三方組件(Zookeeper、Redis等),當這些組件出現問題時,服務調用很快就會中斷。

       ②Dubbo只是實現了服務治理,其他微服務框架並未包含,如果需要使用則需要結合第三方框架實現(百度分布式配置Disconf、京東服務跟蹤Hydra)、開發成本較大

Spring Cloud優點:

       ①有強大的Spring社區、NetFlix等公司支持,且開源社區貢獻非常活躍

       ②分布式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體

       ③基於SpringBoot,具有簡單配置、快速開發、輕松部署、方便測試的優點

       ④支持REST服務調用,相對於RPC,更加輕量化和靈活,有利於跨語言服務的實現以及服務的發布部署,結合Swagger實現服務的文檔一體化

       ⑤提供了Docker及Kubernetes微服務編排支持

Spring Cloud不足:

       ①REST服務調用性能會比RPC性能較低

       ②Spring Cloud整合了大量的組件,相關文檔比較復雜,需要針對性的閱讀

       ③支持REST服務調用,可能因為接口定義過輕,導致定義文檔與實際實現不一致導致服務集成時的問題(可以使用統一文檔和版本管理解決,比如Swagger)

四、SpringCloud學習

  目前Spring Cloud也是非常火熱的,社區更新也比較快,所以什么都學一點,生活更多彩一些。下面正式開始demo學習Spring Cloud,並附上結構圖。

 五、Spring Cloud學習總結

  理無專在、學無止境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM