首頁(yè)技術(shù)文章正文

什么是微服務(wù)?微服務(wù)和分布式的區(qū)別有哪些?

更新時(shí)間:2021-03-22 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


微服務(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ù)較小而又比較多,且類型相似也可以不用著急拆分。


舉網(wǎng)易考拉的例子,工程數(shù)量由最初的 7 到后來(lái)的 150+ 再到目前的 400+,都是根據(jù)實(shí)際情況決定的。中間的狀態(tài),可能不是嚴(yán)格意義上的微服務(wù)架構(gòu),但屬于分布式服務(wù)架構(gòu)——不過(guò)這不是那么重要,重要的是符合業(yè)務(wù)發(fā)展階段的需求。醫(yī)院的急診,既看發(fā)熱又看胃痛,固然分工沒(méi)那么精細(xì),但我們也不能說(shuō)就是錯(cuò)的。

1616383034333_微服務(wù)和分布式.jpg


分布式是什么?

對(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)概念的區(qū)別與聯(lián)系

分布式:分散壓力。

微服務(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)用。



猜你喜歡:

什么是微服務(wù)架構(gòu)?微服務(wù)架構(gòu)有什么優(yōu)缺點(diǎn)?

哪些項(xiàng)目適合使用微服務(wù)架構(gòu)?[Java培訓(xùn)]

Dubbo服務(wù)開發(fā)和運(yùn)行流程【java面試】

黑馬程序員java培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!