芒果视频下载

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

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

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

3、不可靠的網絡

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

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

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

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

問(wen)題描述:線上生產環(huan)境(jing)中,尤(you)其容器部署(shu)情(qing)況下服(fu)務(wu)實例地(di)址(服(fu)務(wu)器端口)是動態分配的,服(fu)務(wu)調(diao)用者無法提(ti)前獲取服(fu)務(wu)實例地(di)址和端口。

解決方案:在(zai)服(fu)務(wu)運行時,通過服(fu)務(wu)發(fa)現組件解析服(fu)務(wu)名來獲(huo)取服(fu)務(wu)實(shi)例地址(zhi)和端口。

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

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

解決方案:

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

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

3、如何避免雪崩?

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

解決方案:

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

(2)【彈(dan)性(xing)擴容機(ji)制】,通過快速(su)增(zeng)加(jia)系統的服務能力來避(bi)免雪崩的發(fa)生。

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

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

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

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

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

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

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

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

問題描(miao)述(shu):既(ji)然要實現(xian)分布式(shi)數據庫,那么應(ying)該如何(he)將(jiang)數據進行切(qie)片(pian)?

解決方案:Hash、Consistent Hash和Range Based分片策略。

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

問(wen)題描述:分布式存(cun)儲的高(gao)可用性需要冗(rong)余(yu)來保證,那(nei)么(me)如何(he)做冗(rong)余(yu)?如何(he)對(dui)數據(ju)進(jin)行復制、更新時(shi)保證兩份數據(ju)的一致性?

解決方案:

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

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

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