微服務(wù)和分布式的聯(lián)系與區(qū)別什么?
微服務(wù)和分布式的聯(lián)系與區(qū)別什么?分布式只是一種手段把不同的機(jī)器分散在不同的地方,然后這些機(jī)器間相互協(xié)助完成業(yè)務(wù),而微服務(wù)是一種特殊的分布式。分布式將一個(gè)大的系統(tǒng)劃分為多個(gè)業(yè)務(wù)模塊,業(yè)務(wù)模塊分別部署到不同的機(jī)器上,各個(gè)業(yè)務(wù)模塊之間通過(guò)接口進(jìn)行數(shù)據(jù)交互,微服務(wù)與分布式的細(xì)微差別是微服務(wù)的應(yīng)用不一定是分散在多個(gè)服務(wù)器上也可以是同一個(gè)服務(wù)器。
一、什么是微服務(wù)?
微服務(wù)架構(gòu)是團(tuán)隊(duì)面對(duì)互聯(lián)網(wǎng)產(chǎn)品爆發(fā)式增長(zhǎng)的最優(yōu)選擇,解決快速迭代、高可靠和高可用等問(wèn)題,把復(fù)雜度很高的產(chǎn)品拆分成一些較小的模塊,并遵循康威定律,每一個(gè)模塊用5-9個(gè)小團(tuán)隊(duì)來(lái)維護(hù),減少溝通成本提高協(xié)作效率更好地實(shí)現(xiàn)快速迭代和彈性擴(kuò)展。
采用微服務(wù)架構(gòu)改造引入各種復(fù)雜性,如部署工作量的增加、復(fù)雜鏈路的監(jiān)控難題,為微服務(wù)而微服務(wù)只會(huì)得不償失。在實(shí)施的過(guò)程中不能簡(jiǎn)單的使用某些個(gè)微服務(wù)框架或者組件一蹴而就,而是需要將業(yè)務(wù)、技術(shù)和運(yùn)維有機(jī)結(jié)合起來(lái)配合同步實(shí)施,并在此過(guò)程中還需要趟過(guò)很多的坑才能夠取得成功。
復(fù)雜業(yè)務(wù)拆分可能無(wú)法一步到位,因?yàn)閺?fù)雜每個(gè)業(yè)務(wù)并不一定只能拆成一個(gè)組件,龐大的業(yè)務(wù)拆分出相對(duì)獨(dú)立和龐大的業(yè)務(wù),但如果業(yè)務(wù)較小而又比較多,且類型相似也可以不用著急拆分。
二、什么是分布式?
對(duì)于分布式架構(gòu)根據(jù)設(shè)計(jì)期的架構(gòu)思想和運(yùn)行期的不同結(jié)構(gòu)分為:面向服務(wù)架構(gòu)、分布式服務(wù)架構(gòu)、微服務(wù)架構(gòu)。
1、面向服務(wù)架構(gòu)︰以業(yè)務(wù)服務(wù)的角度和服務(wù)總線的方式(一般是WebService與ESB)考慮系統(tǒng)架構(gòu)和企業(yè)IT治理;
2、分布式服務(wù)架構(gòu):基于去中心化的分布式服務(wù)框架與技術(shù),考慮系統(tǒng)架構(gòu)和服務(wù)治理;
3.微服務(wù)架構(gòu)∶微服務(wù)架構(gòu)可以看做是面向服務(wù)架構(gòu)和分布式服務(wù)架構(gòu)的拓展,使用更細(xì)粒度的服務(wù)和一組設(shè)計(jì)準(zhǔn)則來(lái)考慮大規(guī)模的復(fù)雜系統(tǒng)架構(gòu)設(shè)計(jì)。
統(tǒng)的企業(yè)集成領(lǐng)域的EAI架構(gòu)模式,本身還是各個(gè)系統(tǒng)獨(dú)立部署,但是各系統(tǒng)之間的部分業(yè)務(wù)使用特定的技術(shù)打通,因此可以看做是單體和分布式之間的過(guò)渡狀態(tài)。
三、分布式服務(wù)架構(gòu)與微服務(wù)架構(gòu)概念的聯(lián)系與區(qū)別是什么?
分布式:分散壓力。
微服務(wù):分散能力。分布式:不同模塊部署在不同服務(wù)器上;
作用:分布式解決網(wǎng)站高并發(fā)帶來(lái)問(wèn)題;
集群:相同的服務(wù);
多臺(tái)服務(wù)器部署相同應(yīng)用構(gòu)成一個(gè)集群;
作用:通過(guò)負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù);
SOA[組裝服務(wù)/ESB企業(yè)服務(wù)總線];
業(yè)務(wù)系統(tǒng)分解為多個(gè)組件,讓每個(gè)組件都獨(dú)立提供離散,自治,可復(fù)用的服務(wù)能力;
通過(guò)服務(wù)的組合和編排來(lái)實(shí)現(xiàn)上層的業(yè)務(wù)流程;
作用:簡(jiǎn)化維護(hù),降低整體風(fēng)險(xiǎn),伸縮靈活;
微服務(wù)[找到服務(wù)/微服務(wù)網(wǎng)關(guān)open API];
架構(gòu)設(shè)計(jì)概念,各服務(wù)間隔離(分布式也是隔離),自治(分布式依賴整體組合)其它特性(單一職責(zé),邊界,異步通信,獨(dú)立部署)是分布式概念的跟嚴(yán)格執(zhí)行;
SOA到微服務(wù)架構(gòu)的演進(jìn)過(guò)程;
作用:各服務(wù)可獨(dú)立應(yīng)用,組合服務(wù)也可系統(tǒng)應(yīng)用。
總結(jié):分布式是個(gè)工作方式,微服務(wù)是一種架構(gòu)風(fēng)格。都是將同一個(gè)大系統(tǒng)中不同的子模塊進(jìn)行分開(kāi)部署。已達(dá)到一個(gè)低耦合,提高并發(fā)量,提高系統(tǒng)可以水平伸縮的能力,同時(shí)它們和其他模塊之間通訊也都是基于rpc進(jìn)行通訊調(diào)用。微服務(wù)是一個(gè)單獨(dú)的服務(wù)包含了一個(gè)服務(wù)從控制層到業(yè)務(wù)層到持久層該有的東西它都必須要有,前端代碼也可以自己提供,并微服務(wù)的持久層數(shù)據(jù)庫(kù)是私有的并不會(huì)對(duì)其他服務(wù)共享。而分布式可以僅僅只有控制層和業(yè)務(wù)層,可以不需要自己的數(shù)據(jù)庫(kù)和前端,可以和其他模塊共享一個(gè)數(shù)據(jù)庫(kù)。