1、基本介紹html
dubbogit
Dubbo 是一個分佈式服務框架,致力於提供高性能和透明化的 RPC 遠程服務調用方案,以及 SOA 服務治理方案。簡單的說,Dubbo 就是個服務框架,說白了就是個遠程服務調用的分佈式框架github
優勢:redis
缺點:spring
spring cloud安全
Spring Cloud 基於 Spring Boot,爲微服務體系開發中的架構問題,提供了一整套的解決方案——服務註冊與發現,服務消費,服務保護與熔斷,網關,分佈式調用追蹤,分佈式配置管理等。網絡
優勢:架構
缺點:併發
補充:spring cloud目前支持的服務發現框架
euerka | Consul | zookeeper | etcd | |
---|---|---|---|---|
服務健康檢查 | 可配支持 | 服務狀態,內存,硬盤等 | (弱)長鏈接,keepalive | 鏈接心跳 |
多數據中心 | — | 支持 | — | — |
kv 存儲服務 | — | 支持 | 支持 | 支持 |
一致性 | — | raft | paxos | raft |
cap | ap | ca | cp | cp |
使用接口(多語言能力) | http(sidecar) | 支持 http 和 dns | 客戶端 | http/grpc |
watch 支持 | 支持 long polling/大部分增量 | 全量/支持long polling | 支持 | 支持 long polling |
自身監控 | metrics | metrics | — | metrics |
安全 | — | acl /https | acl | https 支持(弱) |
spring cloud 集成 | 已支持 | 已支持 | 已支持 | 已支持 |
還有Service Mesh 若是用一句話來解釋什麼是 Service Mesh,能夠將它比做是應用程序或者說微服務間的 TCP/IP,負責服務之間的網絡調用、限流、熔斷和監控。
對於編寫應用程序來講通常無須關心 TCP/IP 這一層(好比經過 HTTP 協議的 RESTful 應用),
一樣使用 Service Mesh 也就無須關係服務之間的那些原來是經過應用程序或者其餘框架實現的事情,好比 Spring Cloud、OSS,如今只要交給 Service Mesh 就能夠了。 Service Mesh有一個成熟的產品,微軟內部用了近10年的產品,如今命名爲Service fabric 開源在GitHub上:https://github.com/Microsoft/service-fabric
2、主要區別
(1)服務調用方式
Q:爲何說 Dubbo 比 Spring Cloud 性能要高一些?
A:由於 Dubbo 採用單一長鏈接和 NIO 異步通信(保持鏈接/輪詢處理),使用自定義報文的 TCP 協議,而且序列化使用定製 Hessian2 框架,適合於小數據量大併發的服務調用,以及服務消費者機器數遠大於服務提供者機器數的狀況,但不適用於傳輸大數據的服務調用。而 Spring Cloud 直接使用 HTTP 協議(但也不是強綁定,也可使用 RPC 庫,或者採用 HTTP 2.0 + 長連接方式(Fegin 能夠靈活設置))。
(2)
參考博文: