Spring Cloud是什麼,和Dubbo對比呢?

茅坤寶駿氹發表於2018-05-01

轉載自 Spring Cloud是什麼,和Dubbo對比呢?

簡介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。

Spring並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝遮蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包。

目前最新版本:Dalston.SR3

官網:http://projects.spring.io/spring-cloud/

特性

Spring Cloud專注於提供良好的開箱即用經驗的典型用例和可擴充套件性機制覆蓋。

  • 分散式/版本化配置

  • 服務註冊和發現

  • 路由

  • service - to - service呼叫

  • 負載均衡

  • 斷路器

  • 分散式訊息傳遞

子專案

Spring Cloud的子專案,大致可分成兩類,一類是對現有成熟框架”Spring Boot化”的封裝和抽象,也是數量最多的專案;第二類是開發了一部分分散式系統的基礎設施的實現,如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。對於我們想快速實踐微服務的開發者來說,第一類子專案就已經足夠使用,如:

  • Spring Cloud Netflix

是對Netflix開發的一套分散式服務框架的封裝,包括服務的發現和註冊,負載均衡、斷路器、REST客戶端、請求路由等。

  • Spring Cloud Config

將配置資訊外部化儲存, 並能配合Spring Cloud Bus可以實現動態修改配置檔案。

  • Spring Cloud Bus

分散式訊息佇列,是對Kafka, MQ的封裝。

  • Spring Cloud Security

是對Spring Security的封裝,能實現服務之間的認證呼叫和安全保護等,並能配合Netflix使用。  

  • Spring Cloud Zookeeper

對Zookeeper的封裝,使之能配置其它Spring Cloud的子專案使用。

  • Spring Cloud Eureka

是 Spring Cloud Netflix微服務套件中的一部分,它基於Netflix Eureka 做了二次分裝,主要負責完成微服務架構中的服務治理功能。

前景

Spring Cloud對於中小型網際網路公司來說是一種福音,因為這類公司往往沒有實力或者沒有足夠的資金投入去開發自己的分散式系統基礎設施,使用Spring Cloud一站式解決方案能在從容應對業務發展的同時大大減少開發成本。同時,隨著近幾年微服務架構和Docker容器概念的火爆,也會讓Spring Cloud在未來越來越“雲”化的軟體開發風格中立有一席之地,尤其是在目前五花八門的分散式解決方案中提供了標準化的、全站式的技術方案,意義可能會堪比當前Servlet規範的誕生,有效推進服務端軟體系統技術水平的進步。

和dubbo的對比

元件DubboSpring Cloud
服務註冊中心ZookeeperSpring Cloud Netflix Eureka
服務呼叫方式RPCREST API
服務閘道器Spring Cloud Netflix Zuul
斷路器不完善Spring Cloud Netflix Hystrix
分散式配置Spring Cloud Config
服務跟蹤Spring Cloud Sleuth
訊息匯流排Spring Cloud Bus
資料流Spring Cloud Stream
批量任務Spring Cloud Task
.........

所以,對比看出其實沒什麼比較性,Dubbo只是Spring Cloud的一個子集而已,Spring Cloud是一系列的分散式的解決方案包。不過隨著目前Dubbo官方的重新申明維護並得到重視,Dubbo生態圈也會逐漸強大。


相關文章