⒈官網說明架構
SpringCloud是基於SpringBoot提供了一套微服務解決方案,包括服務註冊與發現、配置中心、全鏈路監控、服務網關、負載均衡、熔斷器等組件,除了基於Netflix的開源組件作高度抽象封裝以外,還有一些選型中立的開源組件。負載均衡
SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,SpringCloud爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等,它們均可以用SpringBoot的開發風格作到一鍵啓動和部署。框架
SpringBoot並無重複製造輪子,它只是將目前各家公司開發的比較成熟,經得起實際考驗的服務框架組合起來,經過SpringBoot風格進行再封裝,屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具。分佈式
⒉一句話總結微服務
SpringCloud是分佈式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,能夠稱之爲微服務全家桶。工具
⒊SpringCloud和SpringBoot是什麼關係?性能
SpringBoot專一於快速方便的開發單個個體微服務。開發工具
SpringCloud是關注全局的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來,爲各個微服務之間提供配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等集成服務。代理
SpringBoot能夠離開SpringCloud獨立使用開發項目,可是SpringCloud離不開SpringBoot,它們之間屬於單向依賴的關係。事件
SpringBoot專一於快速、方便的開發單個微服務的個體,SpringCloud關注全局的服務治理框架。
⒊SpringCloud和Dubbo對比
功能點 | SpringCloud | Dubbo |
服務註冊中心 | SpringCloud Netflix Eureka | Zookeeper、Redis等 |
服務調用方式 | Rest Api | RPC |
服務監控 | SpringBoot Admin | Dubbo-monitor |
斷路器 | SpringCloud Netflix Hystrix | 不完善 |
服務網關 | SpringCloud Netflix Zuul | 無 |
分佈式配置 | SpringCloud Config | 無 |
服務跟蹤 | SpringCloud Sleuth | 無 |
消息總線 | SpringCloud Bus | 無 |
數據流 | SpringCloud Stream | 無 |
批量任務 | SpringCloud Task | 無 |
....... |
總結:
SpringCloud拋棄了Dubbo的RPC通訊,採用基於Http的Rest方式,嚴格來講,這兩種方式各有優點,Rest犧牲了服務調用的性能,但也避免了原生RPC帶來的問題,並且Rest比RPC更爲靈活,服務提供方和調用方的依賴只須要一級契約,不存在代碼級別的強依賴。
SpringCloud功能比Dubbo更增強大,涵蓋面更廣,能夠與Spring全家桶完美融合,Dubbo選擇度很高,但兼容及穩定性須要更多的配置。