芒果视频

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

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

3、不可靠的網絡

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

總而言(yan)之,分布(bu)式(shi)(shi)(shi)的挑(tiao)戰來自不確(que)(que)定性(xing),不確(que)(que)定計算機(ji)什么時候crash、斷電(dian),不確(que)(que)定磁盤什么時候損壞(huai),不確(que)(que)定每次網絡通信要延(yan)遲多久,也不確(que)(que)定通信對(dui)端是否處(chu)理(li)了發送的消(xiao)息。而分布(bu)式(shi)(shi)(shi)的規模(mo)放(fang)大了這個不確(que)(que)定性(xing),不確(que)(que)定性(xing)是令人(ren)討(tao)厭的,所以有諸(zhu)多的分布(bu)式(shi)(shi)(shi)理(li)論、協議來保證(zheng)在這種不確(que)(que)定性(xing)的情況(kuang)下,系統(tong)還能繼(ji)續正常工作。

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

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

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

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

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

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

解決方案:

(1)如果(guo)同一個服務的實(shi)例都是完(wan)全對等的(無狀態(tai)),那么(me)按負載均衡策略來(lai)處理(li)就(jiu)足夠(gou)(隨(sui)機(ji)、輪詢(xun)、權重、hash、一致性hash、fair等各種(zhong)策略)。

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

3、如何避免雪崩?

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

解決方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方案:

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

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

網站提醒和聲明
本(ben)站為注冊(ce)用戶(hu)提供信(xin)(xin)息存儲空(kong)間(jian)服務(wu),非“MAIGOO編輯”、“MAIGOO榜(bang)單研究員”、“MAIGOO文章(zhang)編輯員”上(shang)傳提供的文章(zhang)/文字均是注冊(ce)用戶(hu)自主發(fa)布上(shang)傳,不代表本(ben)站觀點,版(ban)權(quan)歸原作者所有,如有侵權(quan)、虛假信(xin)(xin)息、錯誤信(xin)(xin)息或任何問(wen)題(ti),請及時(shi)(shi)聯系我們(men),我們(men)將在第一時(shi)(shi)間(jian)刪除或更正。 申請刪除>> 糾錯>> 投訴侵權>> 網頁(ye)上相關信息(xi)的(de)知識產(chan)權歸網站方所有(包括但不限于文字、圖片(pian)、圖表、著作(zuo)權、商(shang)標權、為(wei)用戶提供(gong)的(de)商(shang)業信息(xi)等),非經許可不得抄襲(xi)或使用。
提(ti)交說明: 快速提交發布>> 查看提交幫助>> 注冊登錄>>
您還未登錄,依《網絡安全法》相關要求,請您登錄賬戶后再提交發布信息。點擊登錄>>如您還未注冊,可點擊注冊>>,感謝您的理解及支持!
發表評論
最新評論
暫無評論
相關推薦
什么是分布式儲能系統 分布式儲能在電力系統的應用場景
隨著可再生能源的擴展,越來越有必要將不斷變化、間歇式的電力輸出轉變成更穩定和可靠的電力供應。分布式儲能系統通過調節負荷,吸收電力峰值,在電力供應突然降低時注入電力,就地能源存儲可以緩解由可再生能源生產輸出所造成的電源波動。分布式儲能系統接入位置靈活,目前多在中低壓配電網、分布式發電及微電網、用戶側應用。
十大分布式系統品牌 分布式音視頻系統品牌排行
分布式系統什么牌子好?經專業評測的十大分布式系統品牌名單發布啦!上榜分布式系統十大品牌榜單和著名分布式系統品牌名單的是口碑好或知名度高、有實力的品牌,排名不分先后,僅供借鑒參考,想知道什么牌子的分布式系統好?您可以多比較,選擇自己滿意的!
分布式系統的CAP理論是什么 分布式系統CAP特性如何取舍
分布式系統的CAP理論是指一個分布式系統不可能同時滿足數據一致性、服務可用性和分區容錯性這三個基本需求,最多只能同時滿足其中的兩個,這一理論深刻影響著分布式系統的發展,在實際應用中,分布式系統會根據需求舍棄其中一個特性,大多數都是犧牲了一致性。下面一起來了解一下分布式系統的CAP理論是什么以及分布式系統CAP特性如何取舍吧。
如何判別分布式系統的優劣 判斷分布式管控系統優劣的七大標準
分布式系統在各行各業的應用越來越廣泛,市面上的分布式系統產品也比較多,主要可以通過看核心技術、看功能覆蓋、看畫面還原度、看大屏同步性、看坐席延時性、看集中管控、看運維管理七個方面來判斷其優劣。下面一起來看看如何判別分布式系統的優劣以及判斷分布式管控系統優劣的七大標準吧。
分布式系統的技術棧分析 分布式管理系統常用技術和應用場景
分布式系統是一種復雜的系統,應用過程中會衍生出很多分布式需求,為了應對這些需求,分布式系統的技術棧主要有分布式通信技術、分布式資源管理和負載調度技術、分布式協調與同步技術、分布式存儲技術等,不同的技術在應用場景方面也有所不同,下面一起來看看分布式系統的技術棧分析以及分布式管理系統常用技術和應用場景吧。