javascript
Dubbo与SpringCloud的架构与区别
Dubbo與SpringCloud的架構與區別
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 在微服務治理上面無人能敵。
模塊區別:
1、Dubbo主要分為服務注冊中心,服務提供者,服務消費者,還有管控中心;
2、相比起Dubbo簡單的四個模塊,SpringCloud則是一個完整的分布式一站式框架,他有著一樣的服務注冊中心,服務提供者,服務消費者,管控臺,斷路器,分布式配置服務,消息總線,以及服務追蹤等;
dubbo和springCloud之間的區別
| 服務注冊中心 | 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 |
1.最大的區別:
Spring Cloud拋棄了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。嚴格來說,這兩種方式各有優劣。雖然在一定程度上來說,后者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更為合適。
2.總結:
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
總結
以上是生活随笔為你收集整理的Dubbo与SpringCloud的架构与区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: erlang精要(4)-列表及运算
- 下一篇: linux内核杂记(5)-进程终结