【從零開(kāi)始學(xué)微服務(wù)】03.軟件架構(gòu)的演化過(guò)程

大家好,歡迎來(lái)到萬(wàn)貓學(xué)社靴拱,跟我一起學(xué)垃喊,你也能成為微服務(wù)專家

目前大部分的企業(yè)系統(tǒng)和互聯(lián)網(wǎng)應(yīng)用都是采用Web的形式提供服務(wù)能力袜炕,根據(jù)系統(tǒng)的組織方式和部署結(jié)構(gòu)本谜,我們通常把軟件架構(gòu)的演化過(guò)程分為以下幾個(gè)階段:

  • 單體架構(gòu)
  • 垂直架構(gòu)
  • SOA架構(gòu)
  • 微服務(wù)架構(gòu)

單體架構(gòu)

單體架構(gòu),也被成為巨石架構(gòu)偎窘,就像一塊巨石一樣乌助,系統(tǒng)的所有代碼溜在、所有邏輯、所有模塊都集中在一個(gè)項(xiàng)目里他托,并且會(huì)被部署在一個(gè)進(jìn)程中掖肋。比如下面的電商系統(tǒng):

雖然在電商系統(tǒng)被分為了表示層、業(yè)務(wù)邏輯層赏参、數(shù)據(jù)訪問(wèn)層梆造,但是它們還是在同一個(gè)項(xiàng)目里扔水。比如在業(yè)務(wù)邏輯層中,商品管理、庫(kù)存管理础废、訂單管理等等模塊的邏輯都是在一起的神凑,難免就會(huì)有代碼互相耦合的地方象浑,你中有我旭等,我中有你。這就造成了代碼維護(hù)的困難疗锐,比如本來(lái)是在修改商品管理的代碼坊谁,一不注意就影響了庫(kù)存管理的邏輯,引發(fā)了bug滑臊,甚至是生產(chǎn)環(huán)境的事故呜袁。

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

  • 結(jié)構(gòu)簡(jiǎn)單,所有模塊都集中在一個(gè)項(xiàng)目中简珠。
  • 部署簡(jiǎn)單,只需要部署一個(gè)進(jìn)程就可以虹钮。

缺點(diǎn)

  • 版本迭代慢聋庵,模塊耦合度高,牽一發(fā)動(dòng)全身芙粱。
  • 代碼維護(hù)困難祭玉,所有模塊在一個(gè)項(xiàng)目里面,被他人誤改的風(fēng)險(xiǎn)很高春畔。

垂直架構(gòu)

隨著業(yè)務(wù)的發(fā)展脱货,單體架構(gòu)的系統(tǒng)會(huì)越來(lái)越臃腫,代碼的越來(lái)越難以維護(hù)律姨,所以就把系統(tǒng)垂直地分成了多個(gè)項(xiàng)目的子系統(tǒng)振峻,就形成了垂直架構(gòu),也被稱為豎井式架構(gòu)择份,或煙囪架構(gòu)扣孟。比如下面的電商系統(tǒng):

原來(lái)的電商系統(tǒng)別分為了訂單系統(tǒng)、物流系統(tǒng)和用戶系統(tǒng)三個(gè)獨(dú)立的子系統(tǒng)荣赶,子系統(tǒng)之間相互獨(dú)立凤价,互相不會(huì)有影響鸽斟,新業(yè)務(wù)的迭代
更加高效。不過(guò)利诺,因?yàn)橄到y(tǒng)之間無(wú)法互相調(diào)用富蓄,有些模塊功能在不同系統(tǒng)中都有實(shí)現(xiàn)。比如慢逾,商品管理模塊在訂單系統(tǒng)和物流系統(tǒng)都有重復(fù)的實(shí)現(xiàn)立倍。

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

  • 系統(tǒng)相互獨(dú)立,互相不影響氛改。
  • 新業(yè)務(wù)迭代更加高效帐萎。

缺點(diǎn)

  • 各個(gè)系統(tǒng)之間存在模塊功能重復(fù)開(kāi)發(fā)的情況
  • 各個(gè)系統(tǒng)之間相互獨(dú)立,無(wú)法進(jìn)行相互調(diào)用胜卤,形成了“信息孤島”疆导。

SOA架構(gòu)

SOA全稱是Service Oriented Architecture,即面向服務(wù)的架構(gòu)葛躏,當(dāng)垂直應(yīng)用越來(lái)越多澈段,重復(fù)的業(yè)務(wù)代碼就會(huì)越來(lái)越多。此時(shí)可以將重復(fù)的代碼抽取出來(lái)舰攒,形成統(tǒng)一的業(yè)務(wù)層作為獨(dú)立的服務(wù)败富。

SOA是在企業(yè)內(nèi)部IT系統(tǒng)重復(fù)構(gòu)建以及效率低下的背景下提出的,最初想法是更好的利用企業(yè)內(nèi)部的各個(gè)IT系統(tǒng)能力摩窃,解決信息孤島兽叮,適配異構(gòu)系統(tǒng),整合業(yè)務(wù)功能等方面的問(wèn)題猾愿。比如下面的電商系統(tǒng):

訂單系統(tǒng)鹦聪、物流系統(tǒng)等功能模塊都被定義成了獨(dú)立的服務(wù),所有的服務(wù)通過(guò)企業(yè)服務(wù)總線(ESB)來(lái)互相連接蒂秘。企業(yè)服務(wù)總線(ESB)承擔(dān)了傳輸協(xié)議轉(zhuǎn)換泽本、數(shù)據(jù)格式轉(zhuǎn)換、服務(wù)路由姻僧、監(jiān)控告警等功能规丽。

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

  • 解決了信息孤島的問(wèn)題,適配各種異構(gòu)系統(tǒng)撇贺。
  • 提高了整個(gè)系統(tǒng)的可重用性和可維護(hù)性赌莺。

缺點(diǎn)

  • 服務(wù)的接口協(xié)議不固定,種類繁多松嘶,增加了復(fù)雜度雄嚣。
  • 服務(wù)依賴,部署復(fù)雜。

微服務(wù)

微服務(wù)架構(gòu)在某種角度上看也是面向服務(wù)的架構(gòu)缓升,微服務(wù)和SOA架構(gòu)看起來(lái)非常相似鼓鲁,很多理念也很類似,但本質(zhì)上有很大差異港谊。

SOA架構(gòu)通常都有一個(gè)龐大骇吭、復(fù)雜的ESB總線,各個(gè)單體應(yīng)用之間通過(guò)ESB來(lái)交換數(shù)據(jù)歧寺,ESB也承擔(dān)了很多業(yè)務(wù)邏輯轉(zhuǎn)換和處理的工作燥狰;但在微服務(wù)概念里面,沒(méi)有ESB斜筐,有的只是輕量級(jí)的消息通信機(jī)制龙致。

微服務(wù)是一種通過(guò)更細(xì)力度服務(wù)組合來(lái)構(gòu)建大規(guī)模復(fù)雜系統(tǒng)的的架構(gòu)風(fēng)格,這些服務(wù)圍繞業(yè)務(wù)能力以及一系列設(shè)計(jì)標(biāo)準(zhǔn)而非特定的技術(shù)標(biāo)準(zhǔn)來(lái)組織顷链。

總結(jié)

  • 單體架構(gòu)目代,所有代碼、所有邏輯嗤练、所有模塊都集中在一個(gè)項(xiàng)目里榛了。
  • 垂直架構(gòu),把系統(tǒng)垂直地分成了多個(gè)項(xiàng)目的子系統(tǒng)煞抬。
  • SOA架構(gòu)霜大,所有的服務(wù)通過(guò)企業(yè)服務(wù)總線(ESB)來(lái)互相連接。
  • 微服務(wù)架構(gòu)革答,通過(guò)更細(xì)力度服務(wù)組合來(lái)構(gòu)建大規(guī)模復(fù)雜系統(tǒng)战坤。

最后,感謝你這么帥残拐,還給我點(diǎn)贊湖笨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹦骑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌臀防,老刑警劉巖眠菇,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異袱衷,居然都是意外死亡捎废,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)致燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)登疗,“玉大人,你說(shuō)我怎么就攤上這事》妫” “怎么了断傲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)智政。 經(jīng)常有香客問(wèn)我认罩,道長(zhǎng),這世上最難降的妖魔是什么续捂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任垦垂,我火速辦了婚禮,結(jié)果婚禮上牙瓢,老公的妹妹穿的比我還像新娘劫拗。我一直安慰自己,他們只是感情好矾克,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布页慷。 她就那樣靜靜地躺著,像睡著了一般聂渊。 火紅的嫁衣襯著肌膚如雪差购。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天汉嗽,我揣著相機(jī)與錄音欲逃,去河邊找鬼。 笑死饼暑,一個(gè)胖子當(dāng)著我的面吹牛稳析,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弓叛,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼彰居,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了撰筷?” 一聲冷哼從身側(cè)響起陈惰,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毕籽,沒(méi)想到半個(gè)月后抬闯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡关筒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年溶握,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒸播。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡睡榆,死狀恐怖萍肆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胀屿,我是刑警寧澤塘揣,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站碉纳,受9級(jí)特大地震影響勿负,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜劳曹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一奴愉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铁孵,春花似錦锭硼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至岖沛,卻和暖如春暑始,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背婴削。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工廊镜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唉俗。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓嗤朴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親虫溜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雹姊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容