學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

為什么各大企業(yè)仍趨之若鶩的要做架構(gòu)改造呢?

來源:北大青鳥總部 2020年09月08日 09:22

摘要: 為什么各大企業(yè)仍趨之若鶩的要做架構(gòu)改造呢?

隨著互聯(lián)網(wǎng)的大量普及,越來越多的企業(yè)在不斷迭代產(chǎn)品的同時,也在進(jìn)行技術(shù)架構(gòu)升級,將早期的單體式架構(gòu)升級成分布式架構(gòu)。升級改造的成本是非常之大的,那么為什么各大企業(yè)仍趨之若鶩的要做架構(gòu)改造?

1597734359(1).jpg

主要原因有三點(diǎn):

1)單體式系統(tǒng)帶來的成本太高了,互聯(lián)網(wǎng)涌入網(wǎng)民的增多導(dǎo)致需要更好的計算能力、網(wǎng)絡(luò)能力、存儲能力,而只是通過擴(kuò)展小型機(jī)、大型機(jī)來提高單機(jī)性能,太貴了,一般的企業(yè)承受不起。

2)數(shù)據(jù)為王的時代需要更多的數(shù)據(jù)進(jìn)行分析,企業(yè)們需要更經(jīng)濟(jì)實(shí)惠的方式來存儲數(shù)據(jù)、分析數(shù)據(jù),分布式系統(tǒng)多節(jié)點(diǎn)顯然是更好的選擇;

3)在用戶為王的互聯(lián)網(wǎng)時代,互聯(lián)網(wǎng)產(chǎn)品均要求7*24小時能提供服務(wù),保障系統(tǒng)的高可用,通過增加機(jī)器來做好容災(zāi)準(zhǔn)備的方式也演變成了分布式系統(tǒng)的方式。

綜上所述,我們需要分布式系統(tǒng)。分布式系統(tǒng)的定義是由一組通過網(wǎng)絡(luò)進(jìn)行通信、為完成共同的任務(wù)而協(xié)調(diào)工作的計算機(jī)節(jié)點(diǎn)組成的系統(tǒng),簡單來說,就是通過網(wǎng)絡(luò)把很多鏈接的計算機(jī)連接起來,協(xié)同工作,打造一個高性能、高可用的系統(tǒng),對外提供服務(wù)。

分布式系統(tǒng)的學(xué)習(xí)包括兩個模塊--分布式計算&分布式存儲。在分布式計算中,我們需要學(xué)習(xí)的知識點(diǎn)有四個:

1)服務(wù)如何找到另一個服務(wù)?

2)如何判斷服務(wù)的請求發(fā)給哪一個實(shí)例?

3)如何避免系統(tǒng)的雪崩?

4)如何進(jìn)行監(jiān)控告警?。

分布式存儲中,我們需要學(xué)習(xí)的知識點(diǎn)也有四個:

1)如何判斷數(shù)據(jù)存儲規(guī)則?

2)如何數(shù)據(jù)分片?

3)如何復(fù)制數(shù)據(jù)?

4)如何做分布式事務(wù)?

分布式系統(tǒng)的分布式計算中,第一個問題是服務(wù)如何找到另一個服務(wù)呢?這塊主要是結(jié)合微服務(wù)的思想在進(jìn)行落地。通過將服務(wù)劃分為生產(chǎn)者producer(提供響應(yīng)的服務(wù))、消費(fèi)者consumer(發(fā)起請求的服務(wù)),再通過服務(wù)注冊、服務(wù)發(fā)現(xiàn),生產(chǎn)者節(jié)點(diǎn)將自己所能提供的服務(wù)、自己的IP地址端口等給到注冊中心,消費(fèi)者節(jié)點(diǎn)到注冊中心根據(jù)自己的訴求獲取需要的服務(wù)。

第二個問題是在服務(wù)找到之后,消費(fèi)者節(jié)點(diǎn)應(yīng)該將用戶的請求發(fā)往部署著生產(chǎn)者節(jié)點(diǎn)的哪一個服務(wù)呢?如果是有狀態(tài)的服務(wù)(即同一個服務(wù)下不同機(jī)器的數(shù)據(jù)不一樣),通過路由來確認(rèn)當(dāng)前要訪問的請求數(shù)據(jù)是在哪一個實(shí)例上,再進(jìn)行請求的分發(fā)即可;如果是無狀態(tài)的服務(wù)(即同一個服務(wù)不同機(jī)器的數(shù)據(jù)一樣),通過hash、權(quán)重分配、輪詢等規(guī)則將請求進(jìn)行分發(fā)即可。

第三個問題是如何避免服務(wù)的雪崩(即部署某個服務(wù)的某臺機(jī)器出了問題,大量的請求發(fā)過來,導(dǎo)致其他的機(jī)器承受不住,最后該服務(wù)的所有機(jī)器都掛了)?在分布式系統(tǒng)內(nèi)有兩個辦法,1、快速減少系統(tǒng)負(fù)載來避免雪崩的方式,即熔斷服務(wù)、降級服務(wù)、限流服務(wù);2、通過快速增加機(jī)器節(jié)點(diǎn),承受更多的服務(wù)請求,即彈性擴(kuò)容。

最后一個問題是如何對分布式系統(tǒng)進(jìn)行監(jiān)控告警?在分布式系統(tǒng)內(nèi)部,由于服務(wù)眾多、機(jī)器眾多,如果不了解系統(tǒng)整體的情況、服務(wù)與服務(wù)之間如何關(guān)聯(lián),當(dāng)出現(xiàn)問題時排查問題就會變得非常艱難。通過在部署服務(wù)的每臺機(jī)器上安裝探針,采集數(shù)據(jù),進(jìn)行分布式的trace追蹤,再結(jié)合一定的告警機(jī)器,可保障服務(wù)的高可用,在出現(xiàn)問題時快速排查、解決問題。

分布式系統(tǒng)的分布式存儲中,第一個問題是用什么樣的規(guī)則決定如何存儲數(shù)據(jù)?業(yè)內(nèi)流行的有三個理論,即ACID(即atomicity原子性、consistency一致性、isolation隔離性、durability持久性)、BASE(即BasicallyAvailable基本可用、SoftState軟狀態(tài)、EventuallyConsistent最終一致性)、CAP(即Consistency一致性、Availability可用性、Partition分區(qū)容錯性)。這取決于不同的業(yè)務(wù)場景,在交易場景中,大部分企業(yè)會采取ACID原則,即交易操作不能接受任何錯誤,每個操作的步驟必須是原子的、操作與操作的數(shù)據(jù)是隔離的、操作完成后的數(shù)據(jù)是持久化的;在大部分場景中,企業(yè)一般采用BASE原則,即每個業(yè)務(wù)系統(tǒng)最開始的時候由于大業(yè)務(wù)量等情況,數(shù)據(jù)不要求強(qiáng)一致性,但可以通過采取一定的方式使得數(shù)據(jù)最后是一致的。

第二個問題是如何做數(shù)據(jù)分片?我們知道互聯(lián)網(wǎng)系統(tǒng)會產(chǎn)生大量的數(shù)據(jù),而單機(jī)是不可能存儲所有的數(shù)據(jù),因此需要解決數(shù)據(jù)如何存儲在不同的機(jī)器上。在分布式系統(tǒng)中常用的規(guī)則就是Hash、一致性hash、按范圍分片規(guī)則來將數(shù)據(jù)存儲在不同的機(jī)器上。

第三個問題是如何做數(shù)據(jù)復(fù)制?為了保障服務(wù)的高可用,除了機(jī)器的冷備準(zhǔn)備之外,還需要對數(shù)據(jù)做處理,保障業(yè)務(wù)請求訪問到任何一個節(jié)點(diǎn)的數(shù)據(jù)都是一致的、準(zhǔn)確的。常用的解決方案有主從復(fù)制、一致性協(xié)議Raft等。

第四個問題是如何做分布式事務(wù)?在單機(jī)系統(tǒng)中,通過時間戳加序號的方式就可以實(shí)現(xiàn)事務(wù)功能,然而在分布式系統(tǒng)中,因?yàn)橄到y(tǒng)拆分成了微服務(wù)、微服務(wù)又分為多個節(jié)點(diǎn)進(jìn)行部署,系統(tǒng)中的時間不能完全同步,這個時候可以采用整體系統(tǒng)選一臺機(jī)器按單機(jī)的模式生產(chǎn)事務(wù)ID,同城多中心和異地多中心去該臺機(jī)器獲取事務(wù)ID,實(shí)現(xiàn)分布式事務(wù)一致性。

至此,分布式系統(tǒng)的學(xué)習(xí)就要告一段落了,我們再來回顧下本文從為什么需要分布式系統(tǒng)開始,介紹了當(dāng)下互聯(lián)網(wǎng)時代存在的問題、分布式系統(tǒng)的定義、分布式系統(tǒng)計算核心知識點(diǎn)、分布式系統(tǒng)存儲知識點(diǎn)。目前頭部互聯(lián)網(wǎng)公司如阿里頭條騰訊百度美團(tuán)等之外、金融行業(yè)如銀行保險等、傳統(tǒng)行業(yè)如醫(yī)療教育健康等等,各行各業(yè)都開始進(jìn)行技術(shù)架構(gòu)重構(gòu),轉(zhuǎn)單體式應(yīng)用為分布式,因此掌握了分布式系統(tǒng)之后,在秋招、金九銀十跳槽季中,一定會有助力去到心儀的公司噢~

熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營班 爆滿開班
報名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接