芒果视频下载

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

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

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

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

1、異構的機器與網絡

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

2、普遍的節點故障

雖然單個節(jie)(jie)點(dian)(dian)(dian)的(de)(de)故障(zhang)概(gai)率(lv)較低,但節(jie)(jie)點(dian)(dian)(dian)數(shu)目達到一(yi)定規模,出故障(zhang)的(de)(de)概(gai)率(lv)就變高了(le)。分布式系(xi)統需要(yao)保證故障(zhang)發生的(de)(de)時候,系(xi)統仍然是可用的(de)(de),這就需要(yao)監控節(jie)(jie)點(dian)(dian)(dian)的(de)(de)狀(zhuang)態,在節(jie)(jie)點(dian)(dian)(dian)故障(zhang)的(de)(de)情況(kuang)下將該節(jie)(jie)點(dian)(dian)(dian)負責的(de)(de)計算、存儲任(ren)務(wu)轉移(yi)到其他節(jie)(jie)點(dian)(dian)(dian)。

3、不可靠的網絡

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

總(zong)而(er)言之(zhi),分(fen)布式(shi)的(de)挑(tiao)戰(zhan)來自不確(que)(que)定(ding)性(xing)(xing),不確(que)(que)定(ding)計算(suan)機什(shen)么時候(hou)crash、斷電(dian),不確(que)(que)定(ding)磁盤(pan)什(shen)么時候(hou)損壞,不確(que)(que)定(ding)每次(ci)網絡通信要延(yan)遲多(duo)久,也不確(que)(que)定(ding)通信對(dui)端(duan)是否(fou)處(chu)理了(le)發送的(de)消息。而(er)分(fen)布式(shi)的(de)規模(mo)放大了(le)這(zhe)個不確(que)(que)定(ding)性(xing)(xing),不確(que)(que)定(ding)性(xing)(xing)是令(ling)人討厭的(de),所以有諸多(duo)的(de)分(fen)布式(shi)理論、協議(yi)來保證在(zai)這(zhe)種不確(que)(que)定(ding)性(xing)(xing)的(de)情況下,系統還(huan)能繼續(xu)正常工作。

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

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

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

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

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

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

解決方案:

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

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

3、如何避免雪崩?

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

解決方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

問題描述(shu):分布式存儲(chu)的高可(ke)用性需要(yao)冗余來(lai)保證(zheng),那么如何做冗余?如何對數據(ju)進行復制、更(geng)新時保證(zheng)兩份數據(ju)的一致性?

解決方案:

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

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

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