溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中微服務(wù)架構(gòu)與傳統(tǒng)架構(gòu)有什么不同

發(fā)布時(shí)間:2020-06-11 20:02:13 來(lái)源:億速云 閱讀:210 作者:元一 欄目:編程語(yǔ)言

傳統(tǒng)架構(gòu)的優(yōu)缺點(diǎn)。
MVC是一個(gè)輕量而完備的MVC Model 2框架。Maverick的Action稱作Controller。Controller只接受一個(gè)ControllerContext參數(shù)。request,response, servlet config, servelt context等輸入信息都包裝在ControllerContext里面,而且Model也通過(guò)ControllerContext的model屬性返回。

優(yōu)點(diǎn):
這種單體架構(gòu)的優(yōu)點(diǎn)在于方便管理,所有代碼在同一項(xiàng)目中,但是當(dāng)需求越來(lái)越多,項(xiàng)目規(guī)模越來(lái)越大,其壞處也很明顯。
缺點(diǎn):
1、項(xiàng)目過(guò)于臃腫,部署效率低下
當(dāng)大大小小的功能模塊都集中在同一項(xiàng)目的時(shí)候,整個(gè)項(xiàng)目必然會(huì)變得臃腫,讓開(kāi)發(fā)者難以維護(hù)。單體應(yīng)用的代碼越來(lái)越多,依賴的資源越來(lái)越多時(shí),應(yīng)用編譯打包、部署測(cè)試一次非常耗時(shí)。系統(tǒng)高可用性差,資源無(wú)法隔離,整個(gè)單體系統(tǒng)的各個(gè)功能模塊都依賴于同樣的數(shù)據(jù)庫(kù)、內(nèi)存等資源,一旦某個(gè)功能模塊對(duì)資源使用不當(dāng),整個(gè)系統(tǒng)都會(huì)被拖垮。
2、開(kāi)發(fā)成本高
早期在團(tuán)隊(duì)開(kāi)發(fā)人員只有兩三個(gè)人的時(shí)候,協(xié)作修改代碼,打包部署,更新發(fā)布這完全可以控制。但是團(tuán)隊(duì)一旦擴(kuò)張,還是按照早期的方法去開(kāi)發(fā),那如果測(cè)試階段只要有一塊功能有問(wèn)題,就得重新編譯打包部署。所有的開(kāi)發(fā)人員又都得參與其中,效率低下,開(kāi)發(fā)成本極高。
3、無(wú)法靈活拓展
當(dāng)系統(tǒng)的訪問(wèn)量越來(lái)越大的時(shí)候,單體系統(tǒng)固然可以進(jìn)行水平擴(kuò)展,部署在多臺(tái)機(jī)器上組成集群:但是這種擴(kuò)展并非靈活的擴(kuò)展,因此,急需一種方法將應(yīng)用的不同模塊進(jìn)行解耦,從而降低開(kāi)發(fā)和部署成本。
要解決上面單體應(yīng)用的問(wèn)題,就必須引入服務(wù)化的概念。
什么是服務(wù)化?
用通俗的語(yǔ)言來(lái)說(shuō),服務(wù)化就是把傳統(tǒng)單體應(yīng)用中通過(guò) JAR 包依賴產(chǎn)生的本地方法調(diào)用,改造成 RPC 接口產(chǎn)生的遠(yuǎn)程方法調(diào)用。這些服務(wù)是圍繞業(yè)務(wù)功能構(gòu)建的,可以通過(guò)全自動(dòng)部署機(jī)制獨(dú)立部署。 這些服務(wù)的集中管理最少,可以用不同的編程語(yǔ)言編寫(xiě),并使用不同的數(shù)據(jù)存儲(chǔ)技術(shù)。
什么是微服務(wù)?
微服務(wù)架構(gòu)是一種架構(gòu)風(fēng)格和架構(gòu)思想,它倡導(dǎo)我們?cè)趥鹘y(tǒng)軟件應(yīng)用架構(gòu)的基礎(chǔ)上,將系統(tǒng)業(yè)務(wù)按照功能拆分為更加細(xì)粒度的服務(wù),所拆分的每一個(gè)服務(wù)都是一個(gè)獨(dú)立的應(yīng)用,這些應(yīng)用對(duì)外提供公共的API,可以獨(dú)立承擔(dān)對(duì)外服務(wù)的職責(zé),通過(guò)此種思想方式所開(kāi)發(fā)的軟件服務(wù)實(shí)體就是“微服務(wù)”,而圍繞著微服務(wù)思想構(gòu)建的一系列結(jié),我們可以將它稱之為“微服務(wù)架構(gòu)
微服務(wù)有什么樣的具體特點(diǎn)呢?
1、服務(wù)拆分粒度更細(xì)
微服務(wù)可以說(shuō)是更細(xì)維度的服務(wù)化,小到一個(gè)子模塊,只要該模塊依賴的資源與其他模塊都沒(méi)有關(guān)系,那么就可以拆分為一個(gè)微服務(wù)。
2、服務(wù)獨(dú)立部署
傳統(tǒng)的單體架構(gòu)是以整個(gè)系統(tǒng)為單位進(jìn)行部署,而微服務(wù)則是以每一個(gè)獨(dú)立組件為單位進(jìn)行部署。
3、服務(wù)獨(dú)立維護(hù),分工明確
每個(gè)微服務(wù)都可以交由一個(gè)小團(tuán)隊(duì)進(jìn)行開(kāi)發(fā),測(cè)試維護(hù)部署,并對(duì)整個(gè)生命周期負(fù)責(zé),當(dāng)我們將每個(gè)微服務(wù)都隔離為獨(dú)立的運(yùn)行單元之后,任何一個(gè)或者多個(gè)微服務(wù)的失敗都將只影響自己或者少量其他微服務(wù),而不會(huì)大面積地波及整個(gè)服務(wù)運(yùn)行體系。
微服務(wù)它是由單體應(yīng)用進(jìn)化到服務(wù)化拆分部署,后期隨著移動(dòng)互聯(lián)網(wǎng)規(guī)模的不斷擴(kuò)大,敏捷開(kāi)發(fā)、DevOps 理論的發(fā)展和實(shí)踐。隨著微服務(wù)架構(gòu)的越來(lái)越完善和發(fā)展,更多的企業(yè)已經(jīng)使用這種架構(gòu)方法

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI