芒果视频下载

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

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

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

3、不可靠的網絡

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

總而(er)言之(zhi),分(fen)(fen)布式的(de)挑戰來自不(bu)確(que)(que)定(ding)性(xing),不(bu)確(que)(que)定(ding)計算機什么時(shi)候crash、斷(duan)電,不(bu)確(que)(que)定(ding)磁盤什么時(shi)候損壞,不(bu)確(que)(que)定(ding)每次網絡通(tong)信(xin)要延遲(chi)多(duo)久,也不(bu)確(que)(que)定(ding)通(tong)信(xin)對端是(shi)否(fou)處理了發送的(de)消息。而(er)分(fen)(fen)布式的(de)規模放大了這(zhe)個(ge)不(bu)確(que)(que)定(ding)性(xing),不(bu)確(que)(que)定(ding)性(xing)是(shi)令(ling)人討厭的(de),所以有諸多(duo)的(de)分(fen)(fen)布式理論(lun)、協議來保證在這(zhe)種不(bu)確(que)(que)定(ding)性(xing)的(de)情況下,系統還能繼(ji)續正常工作。

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

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

問題(ti)描述:線上生產環境中,尤其容器(qi)(qi)部署情況下服(fu)務(wu)(wu)實例地(di)址(服(fu)務(wu)(wu)器(qi)(qi)端口)是動態(tai)分配(pei)的,服(fu)務(wu)(wu)調用(yong)者(zhe)無法(fa)提前獲取服(fu)務(wu)(wu)實例地(di)址和(he)端口。

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

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

問題描述(shu):找到服務(wu)器后,還應該(gai)確定將當前(qian)請求發往服務(wu)器的哪(na)一個實例(li)。

解決方案:

(1)如果同一(yi)個服務的(de)實例都是完全對等的(de)(無狀態(tai)),那么按(an)負載(zai)均(jun)衡策略來處理(li)就足(zu)夠(隨(sui)機、輪詢、權重、hash、一(yi)致性hash、fair等各種策略)。

(2)如果同一個(ge)服務(wu)(wu)的實(shi)例不是對(dui)等的(有狀態(tai)),那(nei)么需要通過路由服務(wu)(wu)(元數據(ju)服務(wu)(wu)等)先確定當前要訪問的請(qing)求(qiu)數據(ju)在哪(na)一個(ge)實(shi)例上,然后再進行訪問。

3、如何避免雪崩?

問題描述:一個故障由于(yu)正反饋不斷被(bei)擴大,從而導致整(zheng)個系統故障

解決方案:

(1)【快(kuai)速(su)失(shi)敗】和(he)【降(jiang)級機制】:熔斷、降(jiang)級、限流等,通過快(kuai)速(su)減少系(xi)統負載來避免(mian)雪(xue)崩的發生(sheng)。

(2)【彈(dan)性擴(kuo)容機制(zhi)】,通過快速(su)增(zeng)加系統的(de)服務能(neng)力來避免雪(xue)崩的(de)發生。

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

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

解(jie)決方案(an):監控系統的(de)各(ge)層

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

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

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

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

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

問(wen)題描述(shu):既然要實現分布式數據庫(ku),那么應該如何將數據進行切片?

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

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

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

解決方案:

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

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

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