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