總覽
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