芒果视频下载

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

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖然(ran)單個節(jie)(jie)點(dian)的故障概率較(jiao)低(di),但節(jie)(jie)點(dian)數目達到一定(ding)規模,出故障的概率就(jiu)變高了。分布式系(xi)統需(xu)要保(bao)證故障發(fa)生的時(shi)候,系(xi)統仍(reng)然(ran)是可用的,這就(jiu)需(xu)要監控節(jie)(jie)點(dian)的狀態,在(zai)節(jie)(jie)點(dian)故障的情況下將該節(jie)(jie)點(dian)負責的計算、存儲任務(wu)轉(zhuan)移到其他節(jie)(jie)點(dian)。

3、不可靠的網絡

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

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

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

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

問(wen)題描述:線上(shang)生(sheng)產環(huan)境中,尤其容器部署情況(kuang)下服務(wu)實例地(di)址(服務(wu)器端口(kou))是動態分配的(de),服務(wu)調用(yong)者無法提前獲取(qu)服務(wu)實例地(di)址和(he)端口(kou)。

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

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

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

解決方案:

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

(2)如果同一(yi)個服務的(de)實(shi)例(li)不(bu)是(shi)對等(deng)的(de)(有狀態),那么需要通過路由服務(元數(shu)據服務等(deng))先(xian)確定(ding)當前(qian)要訪(fang)(fang)問的(de)請求數(shu)據在哪一(yi)個實(shi)例(li)上,然(ran)后(hou)再進行訪(fang)(fang)問。

3、如何避免雪崩?

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

解決方案:

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

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

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

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

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

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

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

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

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

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

問題描述(shu):既然要(yao)實(shi)現分(fen)布式數據庫,那(nei)么(me)應該(gai)如何(he)將(jiang)數據進行切(qie)片?

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

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

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

解決方案:

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

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

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