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 在微服務治理上面無人能敵。框架
模塊區別:一、Dubbo主要分爲服務註冊中心,服務提供者,服務消費者,還有管控中心;二、相比起Dubbo簡單的四個模塊,SpringCloud則是一個完整的分佈式一站式框架,他有着同樣的服務註冊中心,服務提供者,服務消費者,管控臺,斷路器,分佈式配置服務,消息總線,以及服務追蹤等;分佈式
性能區別:Dubbo的每次測試除去網絡波動以外,都表現很是穩定微服務
Spring Cloud在第一次最慢,以後愈來愈快,連續測試4次以上單次測試性能超過dubbo
Spring Cloud-zuul在第一次最慢,以後也表現愈來愈快,連續4次以上測試 單次性能與dubbo相近,相差在0.02ms內性能
測試數據來源:https://blog.csdn.net/u012599432/article/details/78749255測試