自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)由單體架構(gòu)到微服務(wù)架構(gòu)到底是如何演進(jìn)的?

開(kāi)發(fā) 架構(gòu)
隨著互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)也在不斷的飛速發(fā)展,進(jìn)而導(dǎo)致系統(tǒng)的架構(gòu)也在不斷的發(fā)生著變化。

 [[404130]]

隨著互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)也在不斷的飛速發(fā)展,進(jìn)而導(dǎo)致系統(tǒng)的架構(gòu)也在不斷的發(fā)生著變化??傮w來(lái)說(shuō),系統(tǒng)的架構(gòu)大致經(jīng)歷了:?jiǎn)误w應(yīng)用架構(gòu)—>垂直應(yīng)用架構(gòu)—>分布式架構(gòu)—>SOA架構(gòu)—>微服務(wù)架構(gòu)的演變。當(dāng)然,很多互聯(lián)網(wǎng)企業(yè)的系統(tǒng)架構(gòu)已經(jīng)向Service Mesh(服務(wù)化網(wǎng)格)演變。今天,我們就一起來(lái)聊聊關(guān)于系統(tǒng)架構(gòu)的演變這個(gè)話(huà)題。

單體應(yīng)用架構(gòu)

在企業(yè)發(fā)展的初期,一般公司的網(wǎng)站流量都比較小,只需要一個(gè)應(yīng)用,將所有的功能代碼打包成一個(gè)服務(wù),部署到服務(wù)器上就能支撐公司的業(yè)務(wù)。這樣也能夠減少開(kāi)發(fā)、部署和維護(hù)的成本。

比如,大家都很熟悉的電商系統(tǒng),里面涉及的業(yè)務(wù)主要有:用戶(hù)管理、商品管理、訂單管理、支付管理、庫(kù)存管理、物流管理等等模塊,初期我們會(huì)將所有模塊寫(xiě)到一個(gè)Web項(xiàng)目中,然后統(tǒng)一部署到一個(gè)Web服務(wù)器中。

這種架構(gòu)特點(diǎn)有其優(yōu)點(diǎn):

  • 架構(gòu)簡(jiǎn)單,項(xiàng)目開(kāi)發(fā)和維護(hù)成本低。
  • 所有項(xiàng)目模塊部署到一起,對(duì)于小型項(xiàng)目來(lái)說(shuō),維護(hù)方便。

但是,其缺點(diǎn)也是比較明顯的:

  • 所有模塊耦合在一起,雖然對(duì)于小型項(xiàng)目來(lái)說(shuō),維護(hù)方便。但是,對(duì)于大型項(xiàng)目來(lái)說(shuō),卻是不易開(kāi)發(fā)和維護(hù)的。
  • 項(xiàng)目的各模塊之前過(guò)于耦合,如果一旦有一個(gè)模塊出現(xiàn)問(wèn)題,則整個(gè)項(xiàng)目將不可用。
  • 無(wú)法針對(duì)某個(gè)具體模塊來(lái)提升性能。
  • 無(wú)法對(duì)項(xiàng)目進(jìn)行水平擴(kuò)展。

正是由于單體應(yīng)用架構(gòu)存在著諸多的缺點(diǎn),才逐漸演變?yōu)榇怪睉?yīng)用架構(gòu)。接下來(lái),我們就來(lái)看看垂直應(yīng)用架構(gòu)。

垂直應(yīng)用架構(gòu)

隨著企業(yè)業(yè)務(wù)的不斷發(fā)展,發(fā)現(xiàn)單節(jié)點(diǎn)的單體應(yīng)用不足以支撐業(yè)務(wù)的發(fā)展,于是企業(yè)會(huì)將單體應(yīng)用部署多份,分別放在不同的服務(wù)器上。但是,此時(shí)會(huì)發(fā)現(xiàn)不是所有的模塊都會(huì)有比較大的訪問(wèn)量。如果想針對(duì)項(xiàng)目中的某些模塊進(jìn)行優(yōu)化和性能提升,此時(shí)對(duì)于單體應(yīng)用來(lái)說(shuō),是做不到的。于是乎,垂直應(yīng)用架構(gòu)誕生了。

垂直應(yīng)用架構(gòu),就是將原來(lái)一個(gè)項(xiàng)目應(yīng)用進(jìn)行拆分,將其拆分為互不想干的幾個(gè)應(yīng)用,以此來(lái)提升系統(tǒng)的整體性能。

這里,我們同樣以電商系統(tǒng)為例,在垂直應(yīng)用架構(gòu)下,我們可以將整個(gè)電商項(xiàng)目拆分為:電商交易系統(tǒng)、后臺(tái)管理系統(tǒng)、CMS管理系統(tǒng)等。

我們將單體應(yīng)用架構(gòu)拆分為垂直應(yīng)用架構(gòu)之后,一旦訪問(wèn)量變大,我們只需要針對(duì)訪問(wèn)量大的業(yè)務(wù)增加服務(wù)器節(jié)點(diǎn)即可,無(wú)需針對(duì)整個(gè)項(xiàng)目增加服務(wù)器節(jié)點(diǎn)了。

這種架構(gòu)的優(yōu)點(diǎn):

  • 系統(tǒng)進(jìn)行了拆分,可根據(jù)不同系統(tǒng)的訪問(wèn)情況,有針對(duì)性的進(jìn)行優(yōu)化。
  • 能夠?qū)崿F(xiàn)應(yīng)用的水平擴(kuò)展。
  • 各系統(tǒng)能夠分擔(dān)整體訪問(wèn)的流量,解決了并發(fā)問(wèn)題。
  • 一個(gè)系統(tǒng)發(fā)生了故障,不應(yīng)用其他系統(tǒng)的運(yùn)行情況,提高了整體的容錯(cuò)率。

這種架構(gòu)的缺點(diǎn):

  • 拆分后的各系統(tǒng)之間相對(duì)比較獨(dú)立,無(wú)法進(jìn)行互相調(diào)用。
  • 各系統(tǒng)難免存在重疊的業(yè)務(wù),會(huì)存在重復(fù)開(kāi)發(fā)的業(yè)務(wù),后期維護(hù)比較困難。

分布式架構(gòu)

我們將系統(tǒng)演變?yōu)榇怪睉?yīng)用架構(gòu)之后,當(dāng)垂直應(yīng)用越來(lái)越多,重復(fù)編寫(xiě)的業(yè)務(wù)代碼就會(huì)越來(lái)越多。此時(shí),我們需要將重復(fù)的代碼抽象出來(lái),形成統(tǒng)一的服務(wù)供其他系統(tǒng)或者業(yè)務(wù)模塊來(lái)進(jìn)行調(diào)用。此時(shí),系統(tǒng)就會(huì)演變?yōu)榉植际郊軜?gòu)。

在分布式架構(gòu)中,我們會(huì)將系統(tǒng)整體拆分為服務(wù)層和表現(xiàn)層。服務(wù)層封裝了具體的業(yè)務(wù)邏輯供表現(xiàn)層調(diào)用,表現(xiàn)層則負(fù)責(zé)處理與頁(yè)面的交互操作。

這種架構(gòu)的優(yōu)點(diǎn):

  • 將重復(fù)的業(yè)務(wù)代碼抽象出來(lái),形成公共的訪問(wèn)服務(wù),提高了代碼的復(fù)用性。
  • 可以有針對(duì)性的對(duì)系統(tǒng)和服務(wù)進(jìn)行性能優(yōu)化,以提升整體的訪問(wèn)性能。

這種架構(gòu)的缺點(diǎn):

系統(tǒng)之間的耦合度變高,調(diào)用關(guān)系變得復(fù)雜,難以維護(hù)。

SOA架構(gòu)

在分布式架構(gòu)下,當(dāng)部署的服務(wù)越來(lái)越多,重復(fù)的代碼就會(huì)越來(lái)越多,對(duì)于容量的評(píng)估,小服務(wù)資源的浪費(fèi)等問(wèn)題比較嚴(yán)重。此時(shí),我們就需要增加一個(gè)統(tǒng)一的調(diào)度中心來(lái)對(duì)集群進(jìn)行實(shí)時(shí)管理。此時(shí),系統(tǒng)就會(huì)演變?yōu)镾OA(面向服務(wù))的架構(gòu)。

這種架構(gòu)的優(yōu)點(diǎn):

使用注冊(cè)中心解決了各個(gè)服務(wù)之間的服務(wù)依賴(lài)和調(diào)用關(guān)系的自動(dòng)注冊(cè)與發(fā)現(xiàn)。

這種架構(gòu)的缺點(diǎn):

  • 各服務(wù)之間存在依賴(lài)關(guān)系,如果某個(gè)服務(wù)出現(xiàn)故障可能會(huì)造成服務(wù)的雪崩
  • 服務(wù)之間的依賴(lài)與調(diào)用關(guān)系復(fù)雜,測(cè)試部署的困難比較大。

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

隨著業(yè)務(wù)的發(fā)展,我們?cè)赟OA架構(gòu)的基礎(chǔ)上進(jìn)一步擴(kuò)展,將其徹底拆分為微服務(wù)架構(gòu)。在微服務(wù)架構(gòu)下,我們將一個(gè)大的項(xiàng)目拆分為一個(gè)個(gè)小的可以獨(dú)立部署的微服務(wù),每個(gè)微服務(wù)都有自己的數(shù)據(jù)庫(kù)。

這種架構(gòu)的優(yōu)點(diǎn):

  • 服務(wù)徹底拆分,各服務(wù)獨(dú)立打包、獨(dú)立部署和獨(dú)立升級(jí)。
  • 每個(gè)微服務(wù)負(fù)責(zé)的業(yè)務(wù)比較清晰,利于后期擴(kuò)展和維護(hù)。
  • 微服務(wù)之間可以采用REST和RPC協(xié)議進(jìn)行通信。

這種架構(gòu)的缺點(diǎn):

  • 開(kāi)發(fā)的成本比較高。
  • 涉及到各服務(wù)的容錯(cuò)性問(wèn)題。
  • 涉及到數(shù)據(jù)的一致性問(wèn)題。

涉及到分布式事務(wù)問(wèn)題

本文轉(zhuǎn)載自微信公眾號(hào)「冰河技術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系冰河技術(shù)公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2023-12-30 08:27:13

2024-11-19 08:10:00

2022-12-21 16:13:31

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

2023-11-01 11:17:26

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

2023-12-19 22:29:37

架構(gòu)微服務(wù)系統(tǒng)

2024-01-19 11:57:42

2024-06-05 12:03:43

微服務(wù)架構(gòu)場(chǎng)景

2022-04-28 11:04:27

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

2023-10-24 08:00:00

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

2024-05-16 07:51:55

分布式系統(tǒng)架構(gòu)

2024-11-14 08:08:14

2020-05-26 20:36:19

微服務(wù)架構(gòu)轉(zhuǎn)型

2023-11-21 08:37:09

2024-06-03 10:19:05

2022-08-05 07:37:39

單體架構(gòu)遷移微服務(wù)

2022-12-22 09:00:00

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

2011-04-27 09:30:48

企業(yè)架構(gòu)

2018-11-29 09:36:45

架構(gòu)系統(tǒng)拆分結(jié)構(gòu)演變

2024-03-06 11:22:33

架構(gòu)演進(jìn)技巧

2021-08-03 07:21:14

架構(gòu)微服務(wù)開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)