資料內(nèi)容:
1. 什么是微服務(wù)架構(gòu)
微服務(wù)架構(gòu)就是將單體的應(yīng)用程序分成多個(gè)應(yīng)用程序,這多個(gè)應(yīng)用程序就成為微服務(wù),每個(gè)微服務(wù)運(yùn)行在自
己的進(jìn)程中,并使用輕量級(jí)的機(jī)制通信。這些服務(wù)圍繞業(yè)務(wù)能力來(lái)劃分,并通過(guò)自動(dòng)化部署機(jī)制來(lái)獨(dú)立部
署。這些服務(wù)可以使用不同的編程語(yǔ)言,不同數(shù)據(jù)庫(kù),以保證最低限度的集中式管理。
2. 為什么需要學(xué)習(xí)SpringCloud
首先springcloud基于spingboot的優(yōu)雅簡(jiǎn)潔,可還記得我們被無(wú)數(shù)xml支配的恐懼?可還記得
springmvc,mybatis錯(cuò)綜復(fù)雜的配置,有了spingboot,這些東西都不需要了,spingboot好處不再贅
訴,springcloud就基于SpringBoot把市場(chǎng)上優(yōu)秀的服務(wù)框架組合起來(lái),通過(guò)SpringBoot風(fēng)格進(jìn)行再封
裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理。
什么叫做開(kāi)箱即用?即使是當(dāng)年的黃金搭檔dubbo+zookeeper下載配置起來(lái)也是頗費(fèi)心神的!而
springcloud完成這些只需要一個(gè)jar的依賴就可以了!
springcloud大多數(shù)子模塊都是直擊痛點(diǎn),像zuul解決的跨域,fegin解決的負(fù)載均衡,hystrix的熔斷機(jī)
制等等
3. SpringCloud是什么
SpringCloud是一系列框架的有序集合。它利用SpringBoot的開(kāi)發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施
的開(kāi)發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、智能路由、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用
SpringBoot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。
SpringCloud并沒(méi)有重復(fù)制造輪子,它只是將各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起
來(lái),通過(guò)SpringBoot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、
易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包。
4. SpringCloud的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1.耦合度比較低。不會(huì)影響其他模塊的開(kāi)發(fā)。
2.減輕團(tuán)隊(duì)的成本,可以并行開(kāi)發(fā),不用關(guān)注其他人怎么開(kāi)發(fā),先關(guān)注自己的開(kāi)發(fā)。
3.配置比較簡(jiǎn)單,基本用注解就能實(shí)現(xiàn),不用使用過(guò)多的配置文件。
4.微服務(wù)跨平臺(tái)的,可以用任何一種語(yǔ)言開(kāi)發(fā)。
5.每個(gè)微服務(wù)可以有自己的獨(dú)立的數(shù)據(jù)庫(kù)也有用公共的數(shù)據(jù)庫(kù)。
6.直接寫后端的代碼,不用關(guān)注前端怎么開(kāi)發(fā),直接寫自己的后端代碼即可,然后暴露接口,通過(guò)組件進(jìn)
行服務(wù)通信。
缺點(diǎn):
1.部署比較麻煩,給運(yùn)維工程師帶來(lái)一定的麻煩。Spring Cloud Version
SpringBoot Version
Hoxton
2.2.x
Greenwich
2.1.x
Finchley
2.0.x
Edgware
1.5.x
Dalston
1.5.x
2.針對(duì)數(shù)據(jù)的管理比麻煩,因?yàn)槲⒎?wù)可以每個(gè)微服務(wù)使用一個(gè)數(shù)據(jù)庫(kù)。
3.系統(tǒng)集成測(cè)試比較麻煩
4.性能的監(jiān)控比較麻煩。
總的來(lái)說(shuō)優(yōu)點(diǎn)大過(guò)于缺點(diǎn),目前看來(lái)SpringCloud是一套非常完善的分布式框架,目前很多企業(yè)開(kāi)始用微服
務(wù)、SpringCloud的優(yōu)勢(shì)是顯而易見(jiàn)的。因此對(duì)于想研究微服務(wù)架構(gòu)的同學(xué)來(lái)說(shuō),學(xué)習(xí)SpringCloud是一個(gè)不
錯(cuò)的選擇。
5. SpringBoot和SpringCloud的區(qū)別?
SpringBoot專注于快速方便的開(kāi)發(fā)單個(gè)個(gè)體微服務(wù)。
SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開(kāi)發(fā)的一個(gè)個(gè)單體微服務(wù)整合并
管理起來(lái)。
為各個(gè)微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競(jìng)
選、分布式會(huì)話等等集成服務(wù)。
SpringBoot可以離開(kāi)SpringCloud獨(dú)立使用開(kāi)發(fā)項(xiàng)目,但是SpringCloud離不開(kāi)SpringBoot,屬
于依賴的關(guān)系。
SpringBoot專注于快速、方便的開(kāi)發(fā)單個(gè)微服務(wù)個(gè)體,SpringCloud關(guān)注全局的服務(wù)治理框架。