芒果视频下载

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖然單個節(jie)點(dian)(dian)的(de)(de)故(gu)障概(gai)率較低,但節(jie)點(dian)(dian)數目達到一(yi)定規(gui)模,出(chu)故(gu)障的(de)(de)概(gai)率就變高(gao)了。分(fen)布式系統(tong)需要保證故(gu)障發生的(de)(de)時候(hou),系統(tong)仍然是(shi)可用的(de)(de),這就需要監控節(jie)點(dian)(dian)的(de)(de)狀態(tai),在節(jie)點(dian)(dian)故(gu)障的(de)(de)情況下將該節(jie)點(dian)(dian)負(fu)責的(de)(de)計算、存儲(chu)任務轉(zhuan)移到其(qi)他節(jie)點(dian)(dian)。

3、不可靠的網絡

節點間(jian)通(tong)過(guo)網(wang)(wang)絡通(tong)信,而網(wang)(wang)絡是(shi)不可(ke)靠的(de)。可(ke)能的(de)網(wang)(wang)絡問(wen)題(ti)包括:網(wang)(wang)絡分(fen)割、延時(shi)(shi)、丟包、亂序。相比單(dan)(dan)機過(guo)程調(diao)用,網(wang)(wang)絡通(tong)信最讓(rang)人頭疼的(de)是(shi)超時(shi)(shi):節點A向節點B發出請(qing)求,在約定的(de)時(shi)(shi)間(jian)內沒有收到(dao)節點B的(de)響應,那么(me)B是(shi)否(fou)處理了請(qing)求,這個(ge)是(shi)不確(que)定的(de),這個(ge)不確(que)定會帶(dai)來諸多問(wen)題(ti),最簡單(dan)(dan)的(de),是(shi)否(fou)要重試請(qing)求,節點B會不會多次處理同一(yi)個(ge)請(qing)求。

總而(er)言之,分(fen)布式的(de)挑戰來自不(bu)(bu)確(que)(que)(que)定(ding)性(xing),不(bu)(bu)確(que)(que)(que)定(ding)計算機(ji)什(shen)么(me)時(shi)候crash、斷電(dian),不(bu)(bu)確(que)(que)(que)定(ding)磁(ci)盤(pan)什(shen)么(me)時(shi)候損壞(huai),不(bu)(bu)確(que)(que)(que)定(ding)每次網(wang)絡通信要(yao)延遲多久,也(ye)不(bu)(bu)確(que)(que)(que)定(ding)通信對端是否處理(li)了發送的(de)消息。而(er)分(fen)布式的(de)規模(mo)放(fang)大(da)了這(zhe)個不(bu)(bu)確(que)(que)(que)定(ding)性(xing),不(bu)(bu)確(que)(que)(que)定(ding)性(xing)是令人討(tao)厭的(de),所以有諸(zhu)多的(de)分(fen)布式理(li)論、協議(yi)來保證在這(zhe)種不(bu)(bu)確(que)(que)(que)定(ding)性(xing)的(de)情況下(xia),系(xi)統(tong)還能(neng)繼續正常(chang)工(gong)作。

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

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

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

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

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

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

解決方案:

(1)如(ru)果(guo)同一(yi)個服務(wu)的實例都是完(wan)全對(dui)等(deng)的(無狀(zhuang)態),那么按(an)負載均衡策略(lve)來處(chu)理就(jiu)足夠(隨機、輪詢、權重、hash、一(yi)致(zhi)性(xing)hash、fair等(deng)各種策略(lve))。

(2)如果同一個服務(wu)的(de)實例(li)不是對等(deng)(deng)的(de)(有狀態),那么需要通過路由(you)服務(wu)(元(yuan)數據服務(wu)等(deng)(deng))先確定當前要訪問的(de)請求(qiu)數據在(zai)哪一個實例(li)上(shang),然后再進行訪問。

3、如何避免雪崩?

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

解決方案:

(1)【快(kuai)(kuai)速(su)失(shi)敗】和【降(jiang)級(ji)機制】:熔斷(duan)、降(jiang)級(ji)、限流等,通過快(kuai)(kuai)速(su)減(jian)少系統(tong)負載來(lai)避免雪(xue)崩的(de)發(fa)生。

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方案:

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

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

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