Java基礎(chǔ)學(xué)習(xí):Java分布式和微服務(wù),分布式和微服務(wù)的概念比較相似,分布式屬于微服務(wù)。但是分布式和微服務(wù)在架構(gòu)、作用和粒度上有所區(qū)別。因此,兩者的關(guān)系是既相互聯(lián)系又相互區(qū)別。本文主要帶大家認(rèn)識(shí)分布式和微服務(wù),并探討一下兩者的關(guān)系,感興趣的小伙伴可以接著看下去。
1、微服務(wù)
微服務(wù)的意思也就是將模塊拆分成一個(gè)獨(dú)立的服務(wù)單元通過接口來(lái)實(shí)現(xiàn)數(shù)據(jù)的交互。簡(jiǎn)單來(lái)說微服務(wù)就是很小的服務(wù),小到一個(gè)服務(wù)只對(duì)應(yīng)一個(gè)單一的功能,只做一件事。這個(gè)服務(wù)可以單獨(dú)部署運(yùn)行,服務(wù)之間可以通過RPC來(lái)相互交互,每個(gè)微服務(wù)都是由獨(dú)立的小團(tuán)隊(duì)開發(fā),測(cè)試,部署,上線,負(fù)責(zé)它的整個(gè)生命周期。
2、分布式
分布式服務(wù)顧名思義服務(wù)是分散部署在不同的機(jī)器上的,一個(gè)服務(wù)可能負(fù)責(zé)幾個(gè)功能,是一種面向SOA架構(gòu)的,服務(wù)之間也是通過rpc來(lái)交互或者是webservice來(lái)交互的。邏輯架構(gòu)設(shè)計(jì)完后就該做物理架構(gòu)設(shè)計(jì),系統(tǒng)應(yīng)用部署在超過一臺(tái)服務(wù)器或虛擬機(jī)上,且各分開部署的部分彼此通過各種通訊協(xié)議交互信息,就可算作分布式部署,生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的,比如集群部署,它是把相同應(yīng)用復(fù)制到不同服務(wù)器上,但是邏輯功能上還是單體應(yīng)用。
3、關(guān)系
聯(lián)系:分布式只是一種手段,把不同的機(jī)器分散在不同的地方,然后這些機(jī)器間相互協(xié)助完成業(yè)務(wù)。微服務(wù)是一種特殊的分布式,換句話說,微服務(wù)架構(gòu)是分布式服務(wù)架構(gòu)的子集。微服務(wù)架構(gòu)通過更細(xì)粒度的服務(wù)切分,使得整個(gè)系統(tǒng)的迭代速度并行程度更高,但是運(yùn)維的復(fù)雜度和性能會(huì)隨著服務(wù)的粒度更細(xì)而增加。微服務(wù)重在解耦合,使每個(gè)模塊都獨(dú)立。分布式重在資源共享與加快計(jì)算機(jī)計(jì)算速度。
區(qū)別:
(1)架構(gòu)不同:微服務(wù)的設(shè)計(jì)是為了不因?yàn)槟硞€(gè)模塊的升級(jí)和BUG影響現(xiàn)有的系統(tǒng)業(yè)務(wù)。微服務(wù)與分布式的細(xì)微差別是,微服務(wù)的應(yīng)用不一定是分散在多個(gè)服務(wù)器上,他也可以是同一個(gè)服務(wù)器。
(2)作用不同:分布式:不同模塊部署在不同服務(wù)器上,分布式主要解決的是網(wǎng)站高并發(fā)帶來(lái)問題。微服務(wù):各服務(wù)可獨(dú)立應(yīng)用,組合服務(wù)也可系統(tǒng)應(yīng)用。
(3)粒度不同:微服務(wù)相比分布式服務(wù)來(lái)說,它的粒度更小,服務(wù)之間耦合度更低,由于每個(gè)微服務(wù)都由獨(dú)立的小團(tuán)隊(duì)負(fù)責(zé),因此它敏捷性更高,分布式服務(wù)最后都會(huì)向微服務(wù)架構(gòu)演化,這是一種趨勢(shì),不過服務(wù)微服務(wù)化后帶來(lái)的挑戰(zhàn)也是顯而易見的,例如服務(wù)粒度小,數(shù)量大,后期運(yùn)維將會(huì)很難。
以上就是北大青鳥長(zhǎng)沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):Java分布式和微服務(wù)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
分布式相關(guān)視頻教程
分布式配置中心Apollo揭秘:http://www.bjpowernode.com/javavideo/139.html