任何東西都不會(huì)完美的,有優(yōu)點(diǎn)也會(huì)有缺點(diǎn)當(dāng)然微服務(wù)架構(gòu)也是一樣的,在中培偉業(yè)中就有關(guān)于這一方面的知識(shí)講解。并且每一點(diǎn)都給我們做出來(lái)全面的系統(tǒng)的講解。
微服務(wù)架構(gòu)的優(yōu)勢(shì):首先,我們可以通過(guò)分解巨大的單體式應(yīng)用為多個(gè)服務(wù)方法解決復(fù)雜問(wèn)題。同時(shí)應(yīng)用可以被分解為多個(gè)可管理的分支和服務(wù),當(dāng)然是在功能不變的情況下進(jìn)行的。因?yàn)?strong>微服務(wù)架構(gòu)模式給單體式編碼方式很難實(shí)現(xiàn)的功能提供了模塊化的解決方案,所以,單個(gè)服務(wù)很容易開(kāi)發(fā)、理解和維護(hù)。
第二,這種架構(gòu)是由專(zhuān)業(yè)的開(kāi)發(fā)團(tuán)隊(duì)來(lái)開(kāi)發(fā)的。開(kāi)發(fā)者也就可以自由的選擇開(kāi)發(fā)技術(shù),提供API服務(wù)。現(xiàn)在的服務(wù)都是相對(duì)簡(jiǎn)單的,就算用現(xiàn)在的技術(shù)重寫(xiě)以前的代碼也不是一件很困難的事情。
微服務(wù)架構(gòu)的劣勢(shì):首先主要的不足是,微服務(wù)應(yīng)用是分布式系統(tǒng),因此互帶有一定復(fù)雜性。他們必須寫(xiě)代碼來(lái)處理消息傳遞中的速度快慢或者不可用等局部失效問(wèn)題。當(dāng)然這也不是很大的難事,但相對(duì)于單體式應(yīng)用中通過(guò)語(yǔ)言層級(jí)的方法或者進(jìn)程調(diào)用,微服務(wù)下這種技術(shù)服務(wù)就會(huì)顯得更加復(fù)雜一些。
第二,一個(gè)關(guān)于微服務(wù)的挑戰(zhàn)來(lái)自于分區(qū)的數(shù)據(jù)庫(kù)架構(gòu)。在商業(yè)交易中同時(shí)給多個(gè)業(yè)務(wù)分主體更新消息很是普遍的。這種交易對(duì)于單體式應(yīng)用來(lái)說(shuō)是非常容易的,因?yàn)橹挥幸粋€(gè)數(shù)據(jù)庫(kù)。不同的服務(wù)就需要不同的數(shù)據(jù)庫(kù),那么因?yàn)閿?shù)據(jù)庫(kù)和消息傳遞中間并不支持這一需求,最終不得不使用一個(gè)最終一致的方法,從而對(duì)開(kāi)發(fā)者提出了更高的要求和挑戰(zhàn)。