芒果视频下载

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

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖(sui)然(ran)單個節(jie)點(dian)(dian)的(de)故(gu)(gu)障概率較低,但節(jie)點(dian)(dian)數(shu)目(mu)達到(dao)(dao)一(yi)定規模,出故(gu)(gu)障的(de)概率就變高了。分(fen)布式系(xi)統需要保(bao)證故(gu)(gu)障發生(sheng)的(de)時候,系(xi)統仍然(ran)是可用的(de),這就需要監控(kong)節(jie)點(dian)(dian)的(de)狀態,在(zai)節(jie)點(dian)(dian)故(gu)(gu)障的(de)情況下將該節(jie)點(dian)(dian)負責的(de)計算(suan)、存儲任務轉(zhuan)移到(dao)(dao)其他節(jie)點(dian)(dian)。

3、不可靠的網絡

節(jie)(jie)點(dian)間通過(guo)網(wang)絡(luo)通信(xin)(xin),而網(wang)絡(luo)是(shi)不(bu)(bu)可(ke)靠的(de)(de)。可(ke)能的(de)(de)網(wang)絡(luo)問題包(bao)括:網(wang)絡(luo)分割、延時(shi)、丟(diu)包(bao)、亂序(xu)。相比單(dan)機(ji)過(guo)程(cheng)調(diao)用,網(wang)絡(luo)通信(xin)(xin)最(zui)讓(rang)人(ren)頭疼的(de)(de)是(shi)超(chao)時(shi):節(jie)(jie)點(dian)A向節(jie)(jie)點(dian)B發出請求,在約定(ding)(ding)(ding)的(de)(de)時(shi)間內沒有收到節(jie)(jie)點(dian)B的(de)(de)響應,那么B是(shi)否處(chu)理(li)了請求,這個(ge)是(shi)不(bu)(bu)確定(ding)(ding)(ding)的(de)(de),這個(ge)不(bu)(bu)確定(ding)(ding)(ding)會(hui)帶(dai)來諸(zhu)多問題,最(zui)簡單(dan)的(de)(de),是(shi)否要重試請求,節(jie)(jie)點(dian)B會(hui)不(bu)(bu)會(hui)多次處(chu)理(li)同一個(ge)請求。

總而(er)言之,分布(bu)式的(de)(de)挑戰(zhan)來(lai)自不(bu)確(que)定性(xing)(xing),不(bu)確(que)定計算機什么時候crash、斷電,不(bu)確(que)定磁盤(pan)什么時候損(sun)壞(huai),不(bu)確(que)定每次(ci)網絡通信要(yao)延遲多(duo)(duo)久,也不(bu)確(que)定通信對端是否處(chu)理了(le)發(fa)送(song)的(de)(de)消息。而(er)分布(bu)式的(de)(de)規模放大了(le)這(zhe)個不(bu)確(que)定性(xing)(xing),不(bu)確(que)定性(xing)(xing)是令人(ren)討厭的(de)(de),所(suo)以有諸多(duo)(duo)的(de)(de)分布(bu)式理論、協議(yi)來(lai)保(bao)證在這(zhe)種(zhong)不(bu)確(que)定性(xing)(xing)的(de)(de)情況(kuang)下,系統還能繼續正常工作。

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

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

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

解(jie)決(jue)方(fang)案(an):在(zai)服(fu)(fu)務運行時,通(tong)過(guo)服(fu)(fu)務發現組件解(jie)析服(fu)(fu)務名來(lai)獲取(qu)服(fu)(fu)務實例(li)地址和端口(kou)。

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

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

解決方案:

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

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

3、如何避免雪崩?

問(wen)題描(miao)述(shu):一個故障由于正反(fan)饋不斷被擴(kuo)大,從而(er)導致整(zheng)個系統故障

解決方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方案:

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

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

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