Spring Cloud講解與Dubbo對比

本人博客:技術棧

SpringCloud 簡介
儘管SpringCloud帶有 ‘Cloud’ 的字樣,但是並不是雲計算解決方案,而是在Spring Boot基礎上構建的,用於快速構建分佈式系統的通用模式的工具集。
使用SpringCloud開發的應用程序非常適合在Docker或者PaaS上部署,所以又叫做雲原生應用。雲原生可以簡單理解爲面向雲環境的軟件框架。
Spring Cloud 特點

  • 約定優於配置
  • 適用於各種環境
  • 隱藏了組件的複雜性
  • 開箱即用
  • 輕量級的組件
  • 組件豐富
  • 選型中立、豐富
  • 靈活
    學習SpringCloud 技術儲備
    SpringCloud並不是面向零基礎開發人員,它有一定的學習曲線。
  • 語言基礎:SpringCloud是基於java語言的工具套件,一定要有java基礎。
  • SpringBoot:SpringCloud是基於SpringBoot構建的,因此它延續了SpringBoot的契約模式以及開發方式。
  • 項目管理與構建工具: 目前業界比較主流的項目管理與構建工具有Maven和Gradle等,我個人使用的是Maven
    SpringCloud/SpringBoot版本兼容性
  • Angel版本基於SpringBoot1.2.x構建,在一些場景下,與SpringBoot1.3.x及以上版本不兼容。
  • Brixton版本基於SpringBoot1.3.x構建,也可使用1.4.x進行測試,與SpringBoot1.2.x不兼容。
  • Camden版本基於SpringBoot1.4.x構建,也可使用1.5.x進行測試。
  • Dalston版本基於SpringBoot1.5.x構建,不兼容SpringBoot2.0.x。
  • Edgware版本基於SpringBoot1.5.x構建,不兼容SpringBoot2.0.x。
  • Finchley版本基於SpringBoot2.0.x構建,不兼容SpringBoot1.x。
    個人在使用springCloud構建微服務框架的時候感覺還是比較簡單的,相對於使用阿里雲的Dubbo,SpringCloud提供了很多的組件,有自己的註冊中心,Dubbo使用zookeeper做自己的註冊中心,SpringCloud有自己的網關、配置中心、服務跟蹤、消息總線等,Dubbo是沒有的,相對於SpringCloud的斷路器HystrixDubbo也不完善。
  Dubbo Spring Cloud
服務註冊中心 Zookeeper Spring Cloud Netflix Eureka
服務調用方式 RPC REST API
服務監控 Dubbo-monitor Spring Boot Admin
斷路器 不完善 Spring Cloud Netflix Hystrix
服務網關 Spring Cloud Netflix Zuul
分佈式配置 Spring Cloud Config
服務跟蹤 Spring Cloud Sleuth
消息總線 Spring Cloud Bus
數據流 Spring Cloud Stream
批量任務 Spring Cloud Task

最大的區別:Spring Cloud拋棄了Dubbo 的RPC通信,採用的是基於HTTP的REST方式。
嚴格來說,這兩種方式各有優劣。雖然在一定程度上來說,後者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更爲靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更爲合適。
總結:
Dubbo和Spring Cloud並不是完全的競爭關係,兩者所解決的問題域不一樣:Dubbo的定位始終是一款RPC框架,而Spring Cloud的目的是微服務架構下的一站式解決方案。
非要比較的話,Dubbo可以類比到Netflix OSS技術棧,而Spring Cloud集成了Netflix OSS作爲分佈式服務治理解決方案,但除此之外Spring Cloud還提供了包括config、stream、security、sleuth等分佈式服務解決方案。
當前由於RPC協議、註冊中心元數據不匹配等問題,在面臨微服務基礎框架選型時Dubbo與Spring Cloud只能二選一,這也是兩者總拿來做對比的原因。
Dubbo之後會積極尋求適配到Spring Cloud生態,比如作爲SpringCloud的二進制通訊方案來發揮Dubbo的性能優勢,或者Dubbo通過模塊化以及對http的支持適配到Spring Cloud

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章