Dubbo與SpringCloud的架構與區別

Dubbo架構圖

image.png

SpringCloud 架構圖

image.png

總結

框架 Dubbo SpringCloud
服務註冊中心 Zookeeper Spring Cloud Netfix Eureka(nacos)
服務調用方式 RPC REST API
服務監控 Dubbo-monitor Spring Boot Admin
熔斷器 不完善 Spring Cloud Netflix Hystrix
服務網關 Spring Cloud Netflix Zuul
分佈式配置 Spring Cloud Config
服務跟蹤 Spring Cloud Sleuth
數據流 Spring Cloud Stream
批量任務 Spring Cloud Task
信息總線 Spring Cloud Bus

面向微服務的技術(SpringCloud)

Spring Cloud 拋棄了 Dubbo 的 RPC 通訊,採用的是基於 HTTP 的 REST 方式。嚴格來講,這兩種方式各有優劣。
雖然從必定程度上來講,後者犧牲了服務調用的性能,但也避免了上面提到的原生 RPC 帶來的問題。
並且 REST 相比 RPC 更爲靈活,服務提供方和調用方,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下顯得更加合適。架構

最大的區別:

  • Dubbo底層是使用Netty這樣的NIO框架,是基於TCP協議傳輸的,配合以Hession序列化完成RPC通訊(支持多協議調用);
  • 而SpringCloud是基於Http協議+rest接口調用遠程過程的通訊,相對來講,Http請求會有更大的報文,佔的帶寬也會更多。可是REST相比RPC更爲靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更爲合適,至於注重通訊速度仍是方便靈活性,具體狀況具體考慮。

定位區別:

  • Dubbo 是 SOA 時代的產物,它的關注點主要在於服務的調用,流量分發、流量監控和熔斷;

*而Spring Cloud 誕生於微服務架構時代,考慮的是微服務治理的方方面面,另外因爲依託Spirng、Spirng Boot 的優點之上,兩個框架在開始目標就不一致,Dubbo 定位服務治理、Spirng Cloud 是一個生態。所以能夠大膽地判斷,Dubbo 將來會在服務治理方面更爲出色,而 SpringCloud 在微服務治理上面無人能敵。框架

模塊區別:

一、Dubbo主要分爲服務註冊中心,服務提供者,服務消費者,還有管控中心;分佈式

二、相比起Dubbo簡單的四個模塊,SpringCloud則是一個完整的分佈式一站式框架,他有着同樣的服務註冊中心,服務提供者,服務消費者,管控臺,斷路器,分佈式配置服務,消息總線,以及服務追蹤等;微服務

相關文章
相關標籤/搜索