芒果视频下载

品牌分類   知識分類          
移動端(duan)
  • 買購網APP
  • 手機版Maigoo
  

分布式系統面臨的挑戰有哪些 分布式系統帶來的問題及解答

本文章由注冊用戶 知無涯 上傳提供 2024-11-30 評論 0
摘要:分布式系統建立在網絡上,而網絡是不可靠的,可能的網絡問題包括:網絡分割、延時、丟包、亂序等,這些會給分布式系統帶來挑戰,除此之外,異構的機器與網絡、普遍的節點故障也是分布式系統面臨的主要挑戰之一。分布式系統工作過程中,還會帶來一些問題,比如如何找到所需的服務、如何避免雪崩、如何對系統進行監控等。下面一起來看看分布式系統面臨的挑戰有哪些以及分布式系統帶來的問題及解答吧。

一、分布式系統面臨的挑戰有哪些

分布式系統需要大量(liang)機(ji)器協作(zuo),面臨(lin)諸多的挑戰(zhan),其中主要的挑戰(zhan)有:

1、異構的機器與網絡

分布式(shi)系統中的機器,配置(zhi)不(bu)(bu)一(yi)樣,其上運(yun)行(xing)的服務也(ye)可能(neng)(neng)由不(bu)(bu)同(tong)(tong)的語言、架構實現,因此(ci)處理能(neng)(neng)力也(ye)不(bu)(bu)一(yi)樣;節點(dian)間通過(guo)網(wang)絡(luo)連接,而不(bu)(bu)同(tong)(tong)網(wang)絡(luo)運(yun)營商提供的網(wang)絡(luo)的帶(dai)寬、延時、丟包率(lv)又(you)不(bu)(bu)一(yi)樣。怎么保證大(da)家齊頭并(bing)進,共同(tong)(tong)完成目標,這是個不(bu)(bu)小的挑(tiao)戰。

2、普遍的節點故障

雖然單個節(jie)(jie)(jie)點(dian)的(de)(de)故(gu)障(zhang)概(gai)(gai)率較低,但(dan)節(jie)(jie)(jie)點(dian)數目達到(dao)一定規模,出故(gu)障(zhang)的(de)(de)概(gai)(gai)率就變高了。分布式系統需要保(bao)證(zheng)故(gu)障(zhang)發(fa)生的(de)(de)時候,系統仍然是可用的(de)(de),這就需要監(jian)控節(jie)(jie)(jie)點(dian)的(de)(de)狀態,在節(jie)(jie)(jie)點(dian)故(gu)障(zhang)的(de)(de)情況下(xia)將(jiang)該節(jie)(jie)(jie)點(dian)負責的(de)(de)計算、存儲任務轉移到(dao)其他節(jie)(jie)(jie)點(dian)。

3、不可靠的網絡

節(jie)點(dian)間(jian)通(tong)過網絡(luo)(luo)通(tong)信(xin)(xin),而網絡(luo)(luo)是不(bu)可靠的(de)。可能的(de)網絡(luo)(luo)問題包括:網絡(luo)(luo)分割、延時(shi)、丟包、亂序。相比單機過程(cheng)調(diao)用,網絡(luo)(luo)通(tong)信(xin)(xin)最讓人頭疼的(de)是超時(shi):節(jie)點(dian)A向(xiang)節(jie)點(dian)B發出請求(qiu)(qiu),在約定(ding)的(de)時(shi)間(jian)內(nei)沒(mei)有收到節(jie)點(dian)B的(de)響(xiang)應,那么B是否(fou)處理(li)了請求(qiu)(qiu),這個是不(bu)確定(ding)的(de),這個不(bu)確定(ding)會(hui)(hui)帶來諸多問題,最簡單的(de),是否(fou)要重試請求(qiu)(qiu),節(jie)點(dian)B會(hui)(hui)不(bu)會(hui)(hui)多次處理(li)同一(yi)個請求(qiu)(qiu)。

總而言之,分(fen)布(bu)式的挑(tiao)戰來(lai)自不(bu)(bu)確(que)(que)定性(xing),不(bu)(bu)確(que)(que)定計算機什(shen)么時(shi)候crash、斷電,不(bu)(bu)確(que)(que)定磁盤什(shen)么時(shi)候損壞,不(bu)(bu)確(que)(que)定每次網(wang)絡(luo)通信要延遲多(duo)久(jiu),也不(bu)(bu)確(que)(que)定通信對端(duan)是(shi)否處理了(le)發送的消息(xi)。而分(fen)布(bu)式的規(gui)模放大(da)了(le)這個(ge)不(bu)(bu)確(que)(que)定性(xing),不(bu)(bu)確(que)(que)定性(xing)是(shi)令人(ren)討(tao)厭的,所以有諸多(duo)的分(fen)布(bu)式理論、協議(yi)來(lai)保證(zheng)在這種不(bu)(bu)確(que)(que)定性(xing)的情況下(xia),系統還能繼續正常工作。

二、分布式系統帶來的問題及解答

1、如何找到所需的服務?——服務發現組件

問題描述:線上生產環境中,尤其容器部署(shu)情況下服(fu)務實例地址(zhi)(服(fu)務器端(duan)口)是動態分配的,服(fu)務調用者(zhe)無法提前獲(huo)取服(fu)務實例地址(zhi)和端(duan)口。

解(jie)決方(fang)案:在服務(wu)運行(xing)時,通過(guo)服務(wu)發現組件(jian)解(jie)析(xi)服務(wu)名來獲(huo)取服務(wu)實(shi)例地址和端口。

2、如何找到實例?——請求分發的策略

問題描述:找到服務器后,還應該確(que)定將(jiang)當(dang)前請(qing)求發往服務器的哪一個實(shi)例。

解決方案:

(1)如果(guo)同一個服務的實例(li)都是完(wan)全對等的(無狀態),那(nei)么按負(fu)載均衡策(ce)略來(lai)處理就足夠(隨機、輪(lun)詢、權重、hash、一致性hash、fair等各種策(ce)略)。

(2)如(ru)果同一個服務的實(shi)例不是對等的(有(you)狀態),那么需要通過路由服務(元(yuan)數據服務等)先確(que)定當前要訪問(wen)的請求數據在哪一個實(shi)例上,然后再進行(xing)訪問(wen)。

3、如何避免雪崩?

問題(ti)描述:一個故(gu)障由(you)于正反(fan)饋不斷被擴(kuo)大,從而導致(zhi)整個系統(tong)故(gu)障

解決方案:

(1)【快(kuai)速失敗】和【降級(ji)機制(zhi)】:熔斷、降級(ji)、限流等(deng),通過快(kuai)速減少系統負載(zai)來(lai)避免雪(xue)崩的發(fa)生。

(2)【彈性擴容機制】,通過(guo)快速增加(jia)系統的(de)服務能力來避(bi)免雪崩(beng)的(de)發生。

4、如何對系統進行監控?

問題描述:對于一個分布式系統,如果我(wo)們不能很清楚地了解內部的狀態,那么高可用是(shi)沒有辦法完全保(bao)障的。

解決方案(an):監控系(xi)統的各層

(1)【硬件層面(mian)】:服務器溫(wen)度、磁盤RAID陣列(lie)等。

(2)【系統(tong)層面】:存(cun)活狀態(tai)、CPU、RAM、load負載。

(3)【應用層(ceng)】:mysql、Nginx、Django、LVS、HAProxy。

(4)【業務層面】:PV、UV、訂單。

5、分布式存儲如何做數據切片?

問題(ti)描(miao)述:既然(ran)要實現(xian)分(fen)布(bu)式數據(ju)庫,那(nei)么(me)應該如何將數據(ju)進行切片?

解(jie)決(jue)方案:Hash、Consistent Hash和(he)Range Based分片策略。

6、如何設置冗余?如何復制數據?

問題描述:分(fen)布式存儲的高可用性需要冗(rong)余來保(bao)(bao)證,那么(me)如何(he)做冗(rong)余?如何(he)對數(shu)(shu)據進行復(fu)制、更新時(shi)保(bao)(bao)證兩份數(shu)(shu)據的一(yi)致性?

解決方案:

(1)【中心化方案】:主(zhu)從復(fu)制、一致性協議(yi)(Raft和Paxos)。

(2)【去中心化的方案】:Quorum、Vector Clock。

網站提醒和聲明
本站為注(zhu)冊用(yong)(yong)戶提供信息存儲(chu)空間服務,非(fei)“MAIGOO編(bian)輯”、“MAIGOO榜(bang)單研究員(yuan)”、“MAIGOO文(wen)(wen)章(zhang)編(bian)輯員(yuan)”上(shang)傳提供的文(wen)(wen)章(zhang)/文(wen)(wen)字均是注(zhu)冊用(yong)(yong)戶自主發布上(shang)傳,不(bu)代表本站觀點(dian),版權(quan)歸(gui)原作者所有,如有侵權(quan)、虛(xu)假信息、錯誤信息或任(ren)何問(wen)題(ti),請及時聯系我們,我們將在(zai)第(di)一時間刪除(chu)或更正(zheng)。 申請刪除>> 糾錯>> 投訴侵權>> 網頁上(shang)相關信(xin)息的(de)知識產權歸網站方所有(包括但(dan)不(bu)限于文(wen)字、圖(tu)片(pian)、圖(tu)表(biao)、著作權、商(shang)標權、為用戶提供的(de)商(shang)業(ye)信(xin)息等),非經許(xu)可不(bu)得抄襲(xi)或使用。
提交說(shuo)明: 快速提交發布>> 查看提交幫助>> 注冊登錄>>
發表評論
您還未登錄,依《網絡安全法》相關要求,請您登錄賬戶后再提交發布信息。點擊登錄>>如您還未注冊,可,感謝您的理解及支持!
最(zui)新評論
暫無評論