色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>
      教育培訓(xùn) > 軟件產(chǎn)品架構(gòu)中什么是單體架構(gòu)、SOA架構(gòu)、微服務(wù)架構(gòu)?

      軟件產(chǎn)品架構(gòu)中什么是單體架構(gòu)、SOA架構(gòu)、微服務(wù)架構(gòu)?

      2020-07-31 21:13閱讀(61)

      軟件產(chǎn)品架構(gòu)中什么是單體架構(gòu)、SOA架構(gòu)、微服務(wù)架構(gòu)?單體架構(gòu)、SOA架構(gòu)、微服務(wù)架構(gòu)的區(qū)別是什么。:軟件產(chǎn)品架構(gòu)是不斷迭代演化的,從單體服務(wù)架構(gòu)發(fā)展到現(xiàn)在

      1

      軟件產(chǎn)品架構(gòu)是不斷迭代演化的,從單體服務(wù)架構(gòu)發(fā)展到現(xiàn)在的服務(wù)化、微服務(wù)的架構(gòu)。

      單體架構(gòu)

      單體架構(gòu)就是所有的業(yè)務(wù)模塊都是耦合在一個(gè)項(xiàng)目中,開發(fā)、部署都在一起;如果其中一個(gè)模塊需要上線升級(jí),那么所有模塊都要一起啟停;

      在早期,單體架構(gòu)的項(xiàng)目團(tuán)隊(duì)成員需要是“全!,因?yàn)榍岸、后端、?shù)據(jù)庫都是一波人負(fù)責(zé),后來開始進(jìn)行了邏輯分層,團(tuán)隊(duì)也分成了前端 UI 團(tuán)隊(duì)、后端和 DBA 團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)都有自己負(fù)責(zé)的職責(zé)。

      然而隨著業(yè)務(wù)邏輯越來越復(fù)雜,模塊和模塊之間的耦合度越來越高;另外隨著用戶和數(shù)據(jù)量的增多,單體架構(gòu)也不再能夠支撐高并發(fā)和大數(shù)據(jù)。

      SOA 架構(gòu)

      為了解決上面的問題,SOA 出現(xiàn)了。

      SOA 代表了面向服務(wù)的架構(gòu),SOA 將應(yīng)用程序的業(yè)務(wù)模塊進(jìn)行拆分,形成獨(dú)立的應(yīng)用系統(tǒng),系統(tǒng)和系統(tǒng)之間通過明確的接口串聯(lián)起來;

      每個(gè)系統(tǒng)內(nèi)部結(jié)構(gòu)和邏輯發(fā)生改變,并不影響對外提供的服務(wù),只要保持接口不變,服務(wù)內(nèi)部對外是透明的;

      SOA 架構(gòu)中,服務(wù)定義標(biāo)注的接口,可以提供給多個(gè)調(diào)用方使用,增加了服務(wù)的重用性。

      SOA 架構(gòu)時(shí)代有兩個(gè)很重要技術(shù)實(shí)現(xiàn)方式:Web Service 和 ESB :前者提供了標(biāo)準(zhǔn)的數(shù)據(jù)傳輸協(xié)議,后者實(shí)現(xiàn)了服務(wù)編排和協(xié)議轉(zhuǎn)換。

      微服務(wù)架構(gòu)

      但是隨著用戶和數(shù)據(jù)量的進(jìn)一步增長,SOA 也暴露出來一些缺點(diǎn),比如 SOAP 協(xié)議、XML較重;服務(wù)管理不完善;ESB本身就比較重,而且它本身算是一個(gè)單點(diǎn),在軟件架構(gòu)中,單點(diǎn)意味著風(fēng)險(xiǎn)。

      在微服務(wù)的架構(gòu)中,各個(gè)微服務(wù)可以獨(dú)立開發(fā),獨(dú)立部署;微服務(wù)之間通常使用Restful風(fēng)格的API通信,傳輸格式也通常選擇JSON;

      微服務(wù)是SOA架構(gòu)的延續(xù),它們和單體應(yīng)用相比,大大提高了系統(tǒng)的負(fù)載能力,解決了應(yīng)用高并發(fā)的需求;

      服務(wù)和服務(wù)之間的耦合度也被降低,并且項(xiàng)目團(tuán)隊(duì)可以被拆分成多個(gè)小團(tuán)隊(duì),每個(gè)微服務(wù)都可以進(jìn)行敏捷開發(fā)部署;

      每個(gè)團(tuán)隊(duì)的技術(shù)棧也可以不相同,只要遵守接口協(xié)議即可。

      至于微服務(wù)和 SOA 架構(gòu)的區(qū)別,我是這樣理解的:SOA 架構(gòu)和微服務(wù)架構(gòu)都屬于分布式架構(gòu),分布式的思想就是把不同的業(yè)務(wù)模塊,部署在不同的服務(wù)器上,以應(yīng)對高并發(fā)的問題;SOA 是一種分布式架構(gòu),把業(yè)務(wù)系統(tǒng)分成多個(gè)子系統(tǒng),提供不同的服務(wù),再通過服務(wù)組合、編排實(shí)現(xiàn)業(yè)務(wù)流程;微服務(wù)是SOA的升華,如果非要說點(diǎn)兒不同的,那么微服務(wù)更加強(qiáng)調(diào)服務(wù)的細(xì)分和專業(yè),去ESB總線、去中心化,部署粒度更細(xì),服務(wù)擴(kuò)展更靈活。

      當(dāng)然SOA、微服務(wù)的出現(xiàn),在解決一些問題的時(shí)候,也帶來了另外一部分的問題,比如增加了網(wǎng)絡(luò)開銷、服務(wù)依賴性、增加了測試運(yùn)維難度、數(shù)據(jù)一致性問題等等。

      我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。

      2



      單體架構(gòu)

      在傳統(tǒng)IT行業(yè)的軟件系統(tǒng)設(shè)計(jì)大多都是各種獨(dú)立子系統(tǒng)的堆砌,這也就是所說的單體架構(gòu),其本身擴(kuò)展性差,可靠性低,維護(hù)成本高。單體架構(gòu)在初期系統(tǒng)規(guī)模比較小的情況下尚且能夠較好的支撐,但是隨著系統(tǒng)規(guī)模的擴(kuò)大,它暴露出來的問題也越來越多,主要有以下幾點(diǎn):

      • 復(fù)雜性逐漸變高,問題修復(fù)和新功能開發(fā)難度和成本高,引入新問題的可能性變大。同時(shí),任意模塊的缺陷都可能會(huì)影響整個(gè)系統(tǒng),可靠性低。
      • 隨著人員流動(dòng),加之復(fù)雜性高,新的問題很難被發(fā)現(xiàn)和解決,久而久之,問題逐漸變多,變難、變大,技術(shù)債務(wù)逐漸上升。
      • 隨著模塊不斷集成,部署速度逐漸變慢
      • 想進(jìn)行整體的技術(shù)創(chuàng)新基本不可能,阻礙技術(shù)創(chuàng)新
      • 垂直和水平的可擴(kuò)展性差

      SOA架構(gòu)

      隨后,引入了SOA服務(wù)化(面向服務(wù)的架構(gòu),它將應(yīng)用程序的不同功能單元(服務(wù))進(jìn)行拆分,并通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來)。但是,由于 SOA 早期均使用了ESB總線模式,這種總線模式與某種技術(shù)棧是強(qiáng)綁定的,如,J2EE。這又使得很多企業(yè)的遺留系統(tǒng)很難對接,切換時(shí)間太長,對接成本太高,新系統(tǒng)穩(wěn)定性的收斂也需要一些時(shí)間。最終 SOA 看起來很美,但卻成為了企業(yè)級(jí)奢侈品,中小公司都望而生畏。


      SOA服務(wù)化思想下的微服務(wù)架構(gòu)

      微服務(wù)是在 SOA 上做的升華,微服務(wù)最早由Martin Fowler與James Lewis于2014年共同提出,微服務(wù)架構(gòu)風(fēng)格是一種使用一套小服務(wù)來開發(fā)單個(gè)應(yīng)用的方式途徑,每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,并使用輕量級(jí)機(jī)制通信,通常是HTTP Rest API的方式(告別ESB服務(wù)總線),這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,并能夠通過自動(dòng)化部署機(jī)制來獨(dú)立部署,這些服務(wù)使用不同的編程語言實(shí)現(xiàn),以及不同數(shù)據(jù)存儲(chǔ)技術(shù),并保持最低限度的集中式管理。

      簡單講,微服務(wù)不再強(qiáng)調(diào)傳統(tǒng)SOA架構(gòu)里面比較重的ESB服務(wù)總線,同時(shí)將SOA的思想延伸到單個(gè)業(yè)務(wù)系統(tǒng)內(nèi)部實(shí)現(xiàn)真正的組件化。微服務(wù)架構(gòu)強(qiáng)調(diào)的一個(gè)重點(diǎn)是“業(yè)務(wù)需要徹底的組件化和服務(wù)化”。

      從微服務(wù)的概念可以看出它有如下好處:

      • 每個(gè)服務(wù)可以獨(dú)立開發(fā),易于開發(fā),提高開發(fā)人員的生產(chǎn)效率
      • 局部修改容易部署
      • 技術(shù)棧不受限
      • 單個(gè)服務(wù)支持獨(dú)立部署和發(fā)布,可以進(jìn)行快速迭代部署,更快的交付時(shí)間
      • 更有利于業(yè)務(wù)的擴(kuò)展,可伸縮性強(qiáng)

      轉(zhuǎn)自 @軟件測試開發(fā)技術(shù)棧 ,希望對您有所幫助。

      3

      單體架構(gòu):

      單體機(jī)構(gòu)是指在軟件設(shè)計(jì)中使用經(jīng)典的 3 層模型,即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。雖然在設(shè)計(jì)中劃分了 3 層模型,但是對業(yè)務(wù)場景沒有劃分。一個(gè)典型的單體應(yīng)用就是將所有的業(yè)務(wù)場景的表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層放在一個(gè)工程中,最終經(jīng)過編譯、打包,部署在一臺(tái)服務(wù)器上。

      優(yōu)點(diǎn)

      1. 易于開發(fā): 單體應(yīng)用程序開發(fā)相對簡單,容易理解,單個(gè)程序員可以完成業(yè)務(wù)接口到數(shù)據(jù)庫的整個(gè)流程。
      2. 部署簡單: 由于是完整的結(jié)構(gòu)體,可以直接部署在一個(gè)服務(wù)器上即可。
      3. 技術(shù)單一: 項(xiàng)目不需要復(fù)雜的技術(shù)棧,往往一套熟悉的技術(shù)棧就可以完成開發(fā)。

      缺點(diǎn)

      1. 開發(fā)成本高:代碼重復(fù)率高,需求變更困難,無法滿足新業(yè)務(wù)快速上線和敏捷交付。
      2. 系統(tǒng)穩(wěn)定性差:任何一個(gè)模塊的錯(cuò)誤均可能造成整個(gè)系統(tǒng)的宕機(jī);
      3. 擴(kuò)展能力受限:系統(tǒng)的擴(kuò)容只能只對這個(gè)應(yīng)用進(jìn)行擴(kuò)容,不能做到對某個(gè)功能點(diǎn)進(jìn)行擴(kuò)容,關(guān)鍵性的代碼改動(dòng)一處多處會(huì)受影響。

      SOA架構(gòu):

      SOA架構(gòu)即面向服務(wù)架構(gòu),是一種粗粒度、松耦合服務(wù)架構(gòu);赟OA服務(wù)思想進(jìn)行功能的抽取,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來,以服務(wù)為中心各個(gè)系統(tǒng)之間依靠ESB企業(yè)服務(wù)總線進(jìn)行調(diào)用,這使得構(gòu)件在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。

      優(yōu)點(diǎn):

      1. 敏捷性:可以直接利用現(xiàn)有的資源進(jìn)行組合,讓后在按照自己的客戶需求,進(jìn)行進(jìn)一步的開發(fā)。
      2. 擴(kuò)展性:可以更具不同的需求,進(jìn)行重新的組合和構(gòu)造。
      3. 易維護(hù):服務(wù)的提供者和使用者是松耦合關(guān)系,開放標(biāo)準(zhǔn)接口的采用,使其具有很好的維護(hù)性和可用性。

      缺點(diǎn):

      1. 開發(fā)難度: 架構(gòu)設(shè)計(jì)、服務(wù)抽取、接口設(shè)計(jì)等問題,考驗(yàn)著領(lǐng)導(dǎo)者和開發(fā)人員過硬的技術(shù)能力。
      2. 數(shù)據(jù)統(tǒng)一:存在“臟數(shù)據(jù)”相關(guān)問題,處理一致性是設(shè)計(jì)服務(wù)接口面臨的巨大挑戰(zhàn)之一。

      微服務(wù)架構(gòu):

      微服務(wù)架構(gòu)是把一個(gè)大型的單個(gè)應(yīng)用程序和服務(wù)拆分為多個(gè)的微服務(wù),每個(gè)微服務(wù)僅關(guān)注并很好的完成一件任務(wù)。它的主要作用是將功能分解到離散的各個(gè)服務(wù)當(dāng)中,從而降低系統(tǒng)的耦合性,并提供更加靈活的服務(wù)支持。

      優(yōu)點(diǎn):

      1. 獨(dú)立性:是每個(gè)微服務(wù)組件都是簡單靈活的,能夠獨(dú)立部署。
      2. 可擴(kuò)展性:微服務(wù)之間是松耦合的,微服務(wù)內(nèi)部是高內(nèi)聚的,每個(gè)微服務(wù)很容易按需擴(kuò)展,產(chǎn)品迭代周期更短。
      3. 隔離性:每個(gè)微服務(wù)都是獨(dú)立的運(yùn)行,任何一個(gè)或者多個(gè)微服務(wù)的失敗只影響自己或者少量其他微服務(wù),而不會(huì)大面積地波及整個(gè)服務(wù)運(yùn)行體系。

      缺點(diǎn):

      1. 復(fù)雜性:開發(fā)的復(fù)雜性增加,因?yàn)橐粋(gè)業(yè)務(wù)流程需要多個(gè)微服務(wù)通過網(wǎng)絡(luò)交互來完成。
      2. 服務(wù)治理:微服務(wù)過多,服務(wù)治理成本高,不利于系統(tǒng)維護(hù)。

      其實(shí),這三者到現(xiàn)在來說未必是那樣經(jīng)緯分明、非此即彼,很多基于微服務(wù)的單體架構(gòu)應(yīng)用、結(jié)合分布式的SOA云服務(wù)總線來實(shí)現(xiàn)線上線下集成、內(nèi)部跟外部集成、構(gòu)建柔韌的企業(yè)IT架構(gòu)、滿足業(yè)務(wù)的變化、推動(dòng)業(yè)務(wù)創(chuàng)新和變革,是軟件架構(gòu)不斷優(yōu)化、變遷、提升的源動(dòng)力。

      數(shù)通暢聯(lián)專注于企業(yè)IT架構(gòu)、SOA綜合集成、數(shù)據(jù)治理分析領(lǐng)域,感謝您的閱讀與關(guān)注

      4

      一圖了解什么是單體架構(gòu)、SOA架構(gòu)、微服務(wù)架構(gòu)



      分別從三個(gè)維度來展示:

      1、軟件過程維度

      單體架構(gòu)通常采用瀑布模型開發(fā);

      SOA架構(gòu)通常采用敏捷/XP編程模式;

      微服務(wù)架構(gòu)采用DevOps,使用IT交付流水線來全自動(dòng)管理;

      2、從架構(gòu)維度

      單體架構(gòu)通常采用巨石結(jié)構(gòu),不易維護(hù);

      SOA架構(gòu)通常以服務(wù)的方式對外連接,常見的支撐平臺(tái)有ESB企業(yè)服務(wù)總線進(jìn)行服務(wù)貫通;

      微服務(wù)架構(gòu)采用更細(xì)的拆分模式,每個(gè)獨(dú)立的模塊有單獨(dú)的數(shù)據(jù)庫、運(yùn)行環(huán)境,在業(yè)務(wù)上完成一個(gè)具體的功能;

      3、從部署形態(tài)維度

      單體架構(gòu)早期多運(yùn)行在物理機(jī)中,當(dāng)然后期也可以運(yùn)行在虛擬化資源中;

      SOA架構(gòu)多運(yùn)行在虛擬化/IAAS平臺(tái)上;

      微服務(wù)架構(gòu)目前多運(yùn)行在容器平臺(tái)上(當(dāng)然也可以運(yùn)行在虛擬化資源和物理機(jī)中,這種情況享受不到容器帶來的便利性);

      5

      單體架構(gòu)就是一個(gè)應(yīng)用所有代碼在一起,部署一臺(tái)會(huì)幾臺(tái)相同的代碼。

      熱點(diǎn)關(guān)注

      一天中什么時(shí)候運(yùn)動(dòng)減肥效果好抓 小孩能不能練啞鈴多大的孩子適合 小孩嘴唇起皮怎么辦怎樣才能預(yù)防 孩子的羅圈腿是怎么形成的三大因 孩子早戀怎么辦如何有效疏導(dǎo)孩子 醫(yī)生婆婆稱自己專業(yè)孩子的事必須 兒子成人禮送什么禮物好呢給你孩 有孩子的夫妻千萬不要離婚對于孩 小孩千萬別讓老人帶的說法正確嗎 自卑缺乏安全感的孩子怎么改善 怎么讓孩子開口說話 這幾個(gè)方法 怎么讓孩子吃飯 教你如何讓孩子 怎么管教不聽話的孩子 家長首先 頑皮的孩子怎么管教的 這些方法 叛逆期的孩子怎么管教 引導(dǎo)孩子 孩子性格軟弱怎么辦 懦弱的性格 孩子性格偏激怎么辦 孩子性格偏 孩子性格固執(zhí)怎么辦 家長們不妨 愛惹事的孩子怎么管教 不妨試試 養(yǎng)育優(yōu)秀的孩子具備特征,家長要 高考數(shù)學(xué)難出新天際,可有的孩子 “做胎教”和“不做胎教”的孩子 花費(fèi)十幾萬只考了302分 媽媽覺得 甘肅作弊考生留下來的疑團(tuán),是怎 一舉奪魁!高三學(xué)生離校時(shí),校領(lǐng) 高考釘子戶:26次參加高考,今年 D2809次列車因泥石流脫線!此類 “女兒16歲,學(xué)校宿舍里分娩了” 扭曲邪門的內(nèi)容,頻頻出現(xiàn)在教科 川渝地區(qū)幾所大學(xué)實(shí)力很牛!四川