spring cloud和dubbo的區別,各自優缺點
阿新 • • 發佈:2019-01-30
區別:-----來源(背景):Dubbo,是阿里巴巴服務化治理的核心框架,並被廣泛應用於阿里巴巴集團的各成員站點。Spring Cloud,從命名我們就可以知道,它是Spring Source的產物,Spring社群的強大背書可以說是Java企業界最有影響力的組織了,除了Spring Source之外,還有Pivotal和Netfix是其強大的後盾與技術輸出。其中Netflix開源的整套微服務架構套件是Spring Cloud的核心。傳輸:Dubbo由於是二進位制的傳輸,佔用頻寬會更少;Spring Cloud是http協議傳輸,頻寬會比較多,同時使用http協議一般會使用JSON報文,消耗會更大。但是在國內95%的公司內,網路消耗不是什麼太大問題,如果真的成了問題,通過壓縮、二進位制、快取記憶體、分段降級等方法,很容易解。開發難度: Dubbo的開發難度較大,原因是dubbo的jar包依賴問題很多大型工程無法解決;Spring Cloud的介面協議約定比較自由且鬆散,需要有強有力的行政措施來限制介面無序升級後續改進:Dubbo通過dubbofilter,很多東西沒有,需要自己繼承,如監控,如日誌,如限流,如追蹤Spring Cloud自己帶了很多監控、限流措施,但是功能可能和歐美習慣相同,國內需要進行適當改造,但更簡單,就是ServletFilter而已,但是總歸比dubbo多一些東西是好的;註冊中心:Dubbo的註冊中心可以選擇zk,redis等多種;Spring Cloud:的註冊中心只能用eureka或者自研;配置中心: dubbo:如果我們使用配置中心、分散式跟蹤這些內容都需要自己去整合,無形中增加了使用難度。Spring Cloud:提供了微服務的一整套解決方案:服務發現註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等核心部件的比較:Dubbo:
- Provider:暴露服務的提供方,可以通過 jar 或者容器的方式啟動服務。
- Consumer:呼叫遠端服務的服務消費方。
- Registry:服務註冊中心和發現中心。
- Monitor:統計服務和呼叫次數,呼叫時間監控中心。(Dubbo 的控制檯頁面中可以顯示,目前只有一個簡單版本。)
- Container:服務執行的容器。
- Service Provider: 暴露服務的提供方。
- Service Consumer:呼叫遠端服務的服務消費方。
- EureKa Server: 服務註冊中心和服務發現中心。
- Interface 層:服務介面層,定義了服務對外提供的所有介面。
- Molel 層:服務的 DTO 物件層。
- Business層:業務實現層,實現 Interface 介面並且和 DB 互動。