Spring Cloud 與 Dubbo 區別

  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
相關文章
相關標籤/搜索