芒果视频

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖然單(dan)個節(jie)點的(de)(de)(de)故(gu)(gu)障概率(lv)(lv)較低(di),但節(jie)點數(shu)目(mu)達到(dao)(dao)一定規模,出故(gu)(gu)障的(de)(de)(de)概率(lv)(lv)就(jiu)(jiu)變高了(le)。分(fen)布(bu)式系統(tong)需要(yao)保證故(gu)(gu)障發(fa)生的(de)(de)(de)時候,系統(tong)仍(reng)然是可用的(de)(de)(de),這(zhe)就(jiu)(jiu)需要(yao)監(jian)控節(jie)點的(de)(de)(de)狀(zhuang)態,在節(jie)點故(gu)(gu)障的(de)(de)(de)情(qing)況下(xia)將該節(jie)點負責(ze)的(de)(de)(de)計算、存(cun)儲(chu)任務轉移到(dao)(dao)其(qi)他節(jie)點。

3、不可靠的網絡

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

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

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

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

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

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

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

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

解決方案:

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

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

3、如何避免雪崩?

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

解決方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方案:

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

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

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