天天看點

SpringCloud 與 Dubbo差別

總覽

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

繼續閱讀