芒果视频下载

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

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

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

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

分布式系統需要大(da)量機器(qi)協作,面臨諸多(duo)的挑戰,其中主要的挑戰有:

1、異構的機器與網絡

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

2、普遍的節點故障

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

3、不可靠的網絡

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

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

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

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

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

解決(jue)方案:在服務運(yun)行(xing)時,通(tong)過服務發現組件解析服務名(ming)來(lai)獲(huo)取服務實例地址(zhi)和端口。

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

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

解決方案:

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

(2)如果(guo)同一(yi)個(ge)服(fu)務的實(shi)例不是對等的(有狀態(tai)),那(nei)么需要(yao)(yao)通過路(lu)由服(fu)務(元數(shu)據服(fu)務等)先確(que)定當(dang)前要(yao)(yao)訪問的請求數(shu)據在哪一(yi)個(ge)實(shi)例上,然后再進行訪問。

3、如何避免雪崩?

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

解決方案:

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

(2)【彈性擴容機制】,通(tong)過快速增(zeng)加(jia)系(xi)統的服(fu)務(wu)能力來(lai)避免雪崩(beng)的發生。

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

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

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

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

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

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

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

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

問題(ti)描述:既然要實現(xian)分(fen)布式數據(ju)庫(ku),那(nei)么應(ying)該如何將數據(ju)進(jin)行(xing)切(qie)片(pian)?

解決方(fang)案:Hash、Consistent Hash和Range Based分片(pian)策略(lve)。

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

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

解決方案:

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

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

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