1. 程式人生 > >Spring cloud和Dubbo區別

Spring cloud和Dubbo區別

Spring boot是建立產品級的Spring應用和服務,簡化了配置檔案,使用嵌入式web伺服器,有很多開箱即用微服務功能,可以和spring cloud聯合部署。

spring cloud 是 微服務工具包,為開發者提供了在分散式系統的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排等開發工具包。


zookeeper


Dubbo預設不支援rest因此基於它擴展出了自己的DubboX(噹噹擴充套件)

Spring Cloud相對Dubbo來說是新事物,其在微服務領域涵蓋的點比Dubbo要廣

其中Spring Cloud的配置管理Dubbo是不具備的,當然可以藉助Zookeeper實現,但是不推薦。Spring Cloud提供的方案是Spring Cloud Config,再加上Spring Cloud Bus可以實現配置的廣播動態重新整理。


服務註冊和發現作為基礎的能力Dubbo是有的,預設大概提供了zookeeper,廣播,redis等幾種。Spring Cloud在這塊也有多個方案,比如Spring Cloud Consul,再比如Netflix系的 Eureka

路由和負載均衡Dubbo預設提供了幾種方式,可以擴充套件。Spring Cloud同樣有ribbon和zuul,其實現的路由和負載功能更強大,其中也包括了授權、安全、服務質量監控等。

服務呼叫Dubbo使用了私有的Dubbo協議,通過RPC呼叫長連線,呼叫方呼叫服務介面時跟本地的服務呼叫類似,異常序列化反序列化、上下文資訊都跟本地呼叫類似(當然也有其他協議也可以自己擴充套件,個人感覺Dubbo的擴充套件性做的很不錯。),spring cloud應該是推薦HTTP,但是對於返回結果,異常序列化、上下文傳遞這塊還需要自己定義規範和實現,感覺需要做的工作很多

    。

斷路器這塊Dubbo提供的比較簡單,SpringCloud藉助Spring Cloud hystrix實現了複雜的服務級別可用性,比如服務隔離、熔斷、恢復、降級等,同時提供了視覺化的監控。

 

至於後面的全域性鎖、leader選舉、分散式訊息等等Dubbo是不提供的,Spring Cloud都提供了相應的解決方案。

藉助Spring的強大背景,Spring Cloud目前發展的也比較迅速,社群也比較活躍,剛才看了github上最近的更新是3小時前。

Dubbo基本不維護了,更加穩定。spring cloud對應支援的元件比較多。

spring cloud更加全面,以後的主流可能更加偏向於spring cloud