更新時間:2021-03-22 來源:黑馬程序員 瀏覽量:
微服務(wù)是什么?
微服務(wù)架構(gòu)是團(tuán)隊面對互聯(lián)網(wǎng)產(chǎn)品爆發(fā)式增長的最優(yōu)選擇,要解決的是快速迭代、高可靠和高可用等問題,把復(fù)雜度很高的產(chǎn)品拆分成一些較小的模塊,并遵循康威定律,每一個模塊用5-9個小團(tuán)隊來維護(hù),這樣可以減少溝通成本,提高協(xié)作效率,更好地實現(xiàn)快速迭代和彈性擴(kuò)展。
采用微服務(wù)架構(gòu)改造,引入各種復(fù)雜性,如部署工作量的增加、復(fù)雜鏈路的監(jiān)控難題,這就是為微服務(wù)而微服務(wù),只會得不償失。在實施的過程中不能簡單的使用某些個微服務(wù)框架或者組件一蹴而就,而是需要將業(yè)務(wù)、技術(shù)和運(yùn)維有機(jī)結(jié)合起來,配合同步實施,并且在此過程中還需要趟過很多的坑才能夠取得成功。
復(fù)雜業(yè)務(wù)拆分可能無法一步到位,因為復(fù)雜,每個業(yè)務(wù)并不一定只能拆成一個組件,龐大的業(yè)務(wù)拆分出相對獨立和龐大的業(yè)務(wù),但如果業(yè)務(wù)較小而又比較多,且類型相似也可以不用著急拆分。
舉網(wǎng)易考拉的例子,工程數(shù)量由最初的 7 到后來的 150+ 再到目前的 400+,都是根據(jù)實際情況決定的。中間的狀態(tài),可能不是嚴(yán)格意義上的微服務(wù)架構(gòu),但屬于分布式服務(wù)架構(gòu)——不過這不是那么重要,重要的是符合業(yè)務(wù)發(fā)展階段的需求。醫(yī)院的急診,既看發(fā)熱又看胃痛,固然分工沒那么精細(xì),但我們也不能說就是錯的。
分布式是什么?
對于分布式架構(gòu),我們根據(jù)設(shè)計期的架構(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è)計準(zhǔn)則來考慮大規(guī)模的復(fù)雜系統(tǒng)架構(gòu)設(shè)計。
統(tǒng)的企業(yè)集成領(lǐng)域的EAI架構(gòu)模式,本身還是各個系統(tǒng)獨立部署,但是各系統(tǒng)之間的部分業(yè)務(wù)使用特定的技術(shù)打通了,因此我們可以看做是單體和分布式之間的過渡狀態(tài)。
分布式服務(wù)架構(gòu)與微服務(wù)架構(gòu)概念的區(qū)別與聯(lián)系
分布式:分散壓力。
微服務(wù):分散能力。
分布式:不同模塊部署在不同服務(wù)器上;
作用:分布式解決網(wǎng)站高并發(fā)帶來問題;
集群:相同的服務(wù);
多臺服務(wù)器部署相同應(yīng)用構(gòu)成一個集群;
作用:通過負(fù)載均衡設(shè)備共同對外提供服務(wù);
SOA[組裝服務(wù)/ESB企業(yè)服務(wù)總線];
業(yè)務(wù)系統(tǒng)分解為多個組件,讓每個組件都獨立提供離散,自治,可復(fù)用的服務(wù)能力;
通過服務(wù)的組合和編排來實現(xiàn)上層的業(yè)務(wù)流程;
作用:簡化維護(hù),降低整體風(fēng)險,伸縮靈活;
微服務(wù)[找到服務(wù)/微服務(wù)網(wǎng)關(guān)open API];
架構(gòu)設(shè)計概念,各服務(wù)間隔離(分布式也是隔離),自治(分布式依賴整體組合)其它特性(單一職責(zé),邊界,異步通信,獨立部署)是分布式概念的跟嚴(yán)格執(zhí)行;
SOA到微服務(wù)架構(gòu)的演進(jìn)過程;
作用:各服務(wù)可獨立應(yīng)用,組合服務(wù)也可系統(tǒng)應(yīng)用。
猜你喜歡:
什么是微服務(wù)架構(gòu)?微服務(wù)架構(gòu)有什么優(yōu)缺點?
哪些項目適合使用微服務(wù)架構(gòu)?[Java培訓(xùn)]