總覽
| Dubbo | SpringCloud | |
| 服務注冊中心 | Zookeeper | Spring Cloud Netfix 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 Stream |
| 批量任務 | 無 | Spring Cloud Task |
| 信息總線 | 無 | Spring Cloud Bus |
最大的區別:Dubbo底層是使用Netty這樣的NIO框架,是基於TCP協議傳輸的,配合以Hession序列化完成RPC通信。而SpringCloud是基於Http協議+rest接口調用遠程過程的通信,相對來說,Http請求會有更大的報文,占的帶寬也會更多。但是REST相比RPC更為靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更為合適,至於注重通信速度還是方便靈活性,具體情況具體考慮。
背景區別:Dubbo是來源於阿里團隊,SpringCloud是來源於Spring團隊,Spring廣泛遍布全球各種企業開發中,可以確保SpringCloud的后續更新維護,Dubbo雖然來自國內頂尖的阿里團隊,但是曾經被阿里棄用停更,但是后來阿里又低調重啟維護。
定位區別: Dubbo 是 SOA 時代的產物,它的關注點主要在於服務的調用,流量分發、流量監控和熔斷。而 Spring Cloud 誕生於微服務架構時代,考慮的是微服務治理的方方面面,另外由於依托了 Spirng、Spirng Boot 的優勢之上,兩個框架在開始目標就不一致,Dubbo 定位服務治理、Spirng Cloud 是一個生態。因此可以大膽地判斷,Dubbo 未來會在服務治理方面更為出色,而 Spring Cloud 在微服務治理上面無人能敵。
模塊區別:1、Dubbo主要分為服務注冊中心,服務提供者,服務消費者,還有管控中心;2、相比起Dubbo簡單的四個模塊,SpringCloud則是一個完整的分布式一站式框架,他有着一樣的服務注冊中心,服務提供者,服務消費者,管控台,斷路器,分布式配置服務,消息總線,以及服務追蹤等;
性能區別:Dubbo的每次測試除去網絡波動之外,都表現非常穩定
Spring Cloud在第一次最慢,之后越來越快,連續測試4次以上單次測試性能超過dubbo
Spring Cloud-zuul在第一次最慢,之后也表現越來越快,連續4次以上測試 單次性能與dubbo相近,相差在0.02ms內
測試數據來源:https://blog.csdn.net/u012599432/article/details/78749255
