芒果视频

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖然單個節點的故(gu)(gu)(gu)障(zhang)(zhang)概率(lv)較低,但節點數(shu)目達到一定規模,出(chu)故(gu)(gu)(gu)障(zhang)(zhang)的概率(lv)就變(bian)高(gao)了。分布式系(xi)統(tong)需(xu)要保證故(gu)(gu)(gu)障(zhang)(zhang)發生的時候,系(xi)統(tong)仍然是可用的,這就需(xu)要監控節點的狀態,在節點故(gu)(gu)(gu)障(zhang)(zhang)的情況下將(jiang)該節點負(fu)責(ze)的計算、存儲(chu)任務轉移到其他節點。

3、不可靠的網絡

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

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

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

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

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

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

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

問題描述:找(zhao)到(dao)服(fu)務(wu)器后,還(huan)應該確定將當前請(qing)求發往服(fu)務(wu)器的哪一個實例。

解決方案:

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

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

3、如何避免雪崩?

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

解決方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方案:

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

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

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