一、官方說明
????????SpringCloud菜拓,基于SpringBoot提供了一套微服務(wù)解決方案瓣窄,包括服務(wù)注冊與發(fā)現(xiàn),配置中心纳鼎,全鏈路監(jiān)控俺夕,服務(wù)網(wǎng)關(guān),負(fù)載均衡贱鄙,熔斷器等組件劝贸,除了基于NetFlix的開源組件做高度抽象封裝之外,還有一些選型中立的開源組件逗宁。
? ? ? ? SpringCloud利用SpringBoot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)悬荣,SpringCloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理疙剑、服務(wù)發(fā)現(xiàn)氯迂、斷路器、路由言缤、微代理嚼蚀、事件總線、全局鎖管挟、決策競選轿曙、分布式會(huì)話等等,它們都可以用SpringBoot的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。
????????????SpringBoot并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟导帝、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來守谓,通過SpringBoot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂您单、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包
? ? ? ? springCloud = 分布式微服務(wù)架構(gòu)下的一站式解決方案斋荞,是各個(gè)微服務(wù)架構(gòu)落地技術(shù)的集合,俗稱微服務(wù)全家桶虐秦。
?二平酿、 springboot與springcloud 的關(guān)系
SpringBoot專注于快速方便的開發(fā)單個(gè)個(gè)體微服務(wù)。
SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架悦陋,它將SpringBoot開發(fā)的一個(gè)個(gè)單體微服務(wù)整合并管理起來蜈彼,為各個(gè)微服務(wù)之間提供,配置管理俺驶、服務(wù)發(fā)現(xiàn)幸逆、斷路器、路由暮现、微代理秉颗、事件總線、全局鎖送矩、決策競選、分布式會(huì)話等等集成服務(wù)
SpringBoot可以離開SpringCloud獨(dú)立使用開發(fā)項(xiàng)目哪替,但是SpringCloud離不開SpringBoot栋荸,屬于依賴的關(guān)系.
SpringBoot專注于快速、方便的開發(fā)單個(gè)微服務(wù)個(gè)體凭舶,SpringCloud關(guān)注全局的服務(wù)治理框架晌块。
三、springcloud與dubbo對比
最大區(qū)別:SpringCloud拋棄了Dubbo的RPC通信帅霜,采用的是基于HTTP的REST方式匆背。
? ? ? ? 嚴(yán)格來說,這兩種方式各有優(yōu)劣身冀。雖然從一定程度上來說钝尸,后者犧牲了服務(wù)調(diào)用的性能,但也避免了上面提到的原生RPC帶來的問題搂根。而且REST相比RPC更為靈活珍促,服務(wù)提供方和調(diào)用方的依賴只依靠一紙契約,不存在代碼級(jí)別的強(qiáng)依賴剩愧,這在強(qiáng)調(diào)快速演化的微服務(wù)環(huán)境下猪叙,顯得更加合適。
品牌機(jī)與組裝機(jī)的區(qū)別
? ? ? 很明顯,Spring Cloud的功能比dubbo更加強(qiáng)大穴翩,涵蓋面更廣犬第,而且作為Spring的拳頭項(xiàng)目,它也能夠與Spring Framework芒帕、Spring Boot歉嗓、Spring Data、Spring Batch等其他Spring項(xiàng)目完美融合副签,這些對于微服務(wù)而言是至關(guān)重要的遥椿。
社區(qū)支持與更新力度
? ? ? ?最為重要的是,dubbo停止了5年左右的更新淆储,雖然2017.7重啟了冠场。對于技術(shù)發(fā)展的新需求,需要由開發(fā)者自行拓展升級(jí)(比如當(dāng)當(dāng)網(wǎng)弄出了DubboX)本砰,這對于很多想要采用微服務(wù)架構(gòu)的中小軟件組織碴裙,顯然是不太合適的,中小公司沒有這么強(qiáng)大的技術(shù)能力去修改Dubbo源碼+周邊的一整套解決方案点额,并不是每一個(gè)公司都有阿里的大牛+真實(shí)的線上生產(chǎn)環(huán)境測試過舔株。
四、總結(jié)cloud與dubbo
? ??問題:??曾風(fēng)靡國內(nèi)的開源 RPC 服務(wù)框架 Dubbo 在重啟維護(hù)后还棱,令許多用戶為之雀躍载慈,但同時(shí),也迎來了一些質(zhì)疑的聲音珍手“煺。互聯(lián)網(wǎng)技術(shù)發(fā)展迅速,Dubbo 是否還能跟上時(shí)代琳要?Dubbo 與 Spring Cloud 相比又有何優(yōu)勢和差異寡具?是否會(huì)有相關(guān)舉措保證 Dubbo 的后續(xù)更新頻率?
? ? ? ? dubbo與springcloud兩者所解決的問題域并一樣:dubbo的定位是一款RPC框架稚补,springcloud目標(biāo)是微服務(wù)架構(gòu)的下一站式解決方案童叠。? 如果非要比較的話,我覺得dubbo可以類比到 Netflix OSS 技術(shù)棧课幕,而springcloud集成了Netflix OSS 作為分布式服務(wù)治理解決方案厦坛,除此之外springcloud還提供了包括config、stteam乍惊、security粪般、sleuth等等分布式問題解決方案。在面臨微服務(wù)基礎(chǔ)框架選型時(shí)dubbo與springcloud只能二選一污桦。
五亩歹、能干嗎匙监?
? ? Distributed/versioned configuration(分布式/版本控制配置)
? ? Service registration abd discovery(服務(wù)注冊與發(fā)現(xiàn))
? ? Routing(路由)
? ? Service-to-service calls(服務(wù)到服務(wù)的調(diào)用)
? ? Load balancing(負(fù)載均衡配置)
? ? Circuit Breakers(斷路器)
? ? Distributed messaging(分布式消息管理)
? ? ...................
六、去哪下載
? ? 官網(wǎng):?https://spring.io/projects/spring-cloud
? ? 參考書:
? ? ? ? ? ?(1)小作、 https://springcloud.cc/spring-cloud-netflix.html
七亭姥、怎么玩
? ? ? ? 服務(wù)注冊與發(fā)現(xiàn)(Eureka)
? ? ? ? 服務(wù)消費(fèi)者(rest+Ribbon)
? ? ? ? 服務(wù)消費(fèi)者(Feign)
? ? ? ? 斷路器(Hystrix)
? ? ? ? 斷路器監(jiān)控(Hystris Dashboard)
? ? ? ? 路由網(wǎng)關(guān)(Zuul)
? ? ? ? 分布式配置中心(Spring Cloud Config)
? ? ? ? 消息總線(Spring Cloud Bus)
? ? ? ? 服務(wù)鏈路追蹤(Spring Cloud Sleuth)