芒果视频下载

分布式系統為什么具有健壯性 怎么構建健壯的分布式系統

本文章由注冊用戶 知無涯 上傳提供 2024-11-30 評論 0
摘要:分布式系統的處理和控制功能是分布的,單一站點產生的故障不會對整個系統造成太大的影響,即使設備故障,也可以通過容錯技術實現系統的重構,因此分布式系統一般都具有健壯性,不過構建分布式系統時,還是要注意通過最小化組件間依賴、隔離錯誤、在系統中建立緩沖區等方法,構建更健壯的分布式系統。下面一起來看看分布式系統為什么具有健壯性以及怎么構建健壯的分布式系統吧。

一、分布式系統為什么具有健壯性

健壯(zhuang)性是指在異(yi)常和危(wei)險情(qing)況下系統(tong)生(sheng)存的(de)能力,分布(bu)式系統(tong)一般具有(you)健壯(zhuang)性,這(zhe)是因為:

1、分布(bu)式系統的處理和控(kong)制功(gong)能(neng)是分布(bu)的,任何站點(dian)發(fa)生的故障(zhang)都不會給整個系統造(zao)成太(tai)大的影響。

2、當分布式系(xi)統中的設(she)備出現故障時,可以通過容錯技術(shu)實現系(xi)統的重(zhong)構,以保證系(xi)統的正常運行。

二、怎么構建健壯的分布式系統

分(fen)布式系(xi)統(tong)(tong)一(yi)般都具有健壯(zhuang)性,不(bu)(bu)過(guo)面對越來越普遍隨機(ji)故障,如果系(xi)統(tong)(tong)構建(jian)不(bu)(bu)當的話,也會(hui)導致(zhi)系(xi)統(tong)(tong)運行出現問題,要(yao)構建(jian)健壯(zhuang)的分(fen)布式系(xi)統(tong)(tong),主要(yao)注意以(yi)下幾點:

1、最小化組件間依賴

分(fen)布(bu)式系統的組件相互通信以獲(huo)取(qu)數據(ju)或(huo)功能(neng)。在這兩種情況下,我們都可以通過將數據(ju)/功能(neng)推送到調用組件而不是遠程訪問(wen)來減(jian)少(shao)連接需求。

構建大規模分(fen)布式系統迫使我(wo)們(men)放棄(qi)標準軟件工程的許(xu)多“最佳實踐”。要(yao)記住的關鍵是,當我(wo)們(men)采用(yong)分(fen)布式系統的復雜性(xing)來實現可擴展性(xing)時(shi),我(wo)們(men)還需要(yao)盡可能(neng)地控制“分(fen)布”。

(1)重復數據

如果我(wo)(wo)們經常從另一個(ge)組(zu)(zu)件(jian)訪問(wen)一些數(shu)據,我(wo)(wo)們可以(yi)在我(wo)(wo)們的(de)組(zu)(zu)件(jian)中復制它,而不必(bi)在運行(xing)時(shi)檢(jian)索(suo)它。這可以(yi)大(da)大(da)減少運行(xing)時(shi)依賴并幫助改善(shan)我(wo)(wo)們組(zu)(zu)件(jian)的(de)延遲。

經(jing)常訪問但(dan)(dan)有(you)一定規律性變化(hua)(hua)的(de)數據可(ke)以(yi)通(tong)過定期緩存(cun)刷新來臨時(shi)緩存(cun)。更改頻率更低或從不更改的(de)數據(例如客戶姓名)可(ke)以(yi)直(zhi)接(jie)存(cun)儲在我們(men)的(de)組件中。如果/當(dang)這(zhe)些數據發(fa)生(sheng)變化(hua)(hua)時(shi),我們(men)可(ke)能需要做一些額外的(de)工(gong)作,但(dan)(dan)是(shi)這(zhe)種增(zeng)加(jia)的(de)小開銷通(tong)常是(shi)值得(de)的(de),因為它(ta)可(ke)以(yi)提高(gao)彈性。

(2)非規范化數據

非規范化是在組件內發生(sheng)的一種特(te)殊(shu)形式(shi)的重復(fu)。如果(guo)我們使用(yong)關系(xi)數據(ju)(ju)存儲,我們可(ke)以通(tong)過在主實體中(zhong)復(fu)制數據(ju)(ju)來降低查看多個實體的成本。本地化分(fen)散(san)數據(ju)(ju)以獲得更好性能的原(yuan)則也(ye)適用(yong)于此。

(3)庫

為(wei)了減(jian)輕另一(yi)個組件的功(gong)能(neng)(neng)依賴性,我(wo)們(men)可(ke)(ke)以將遠程(cheng)組件打包為(wei)庫(ku)并(bing)(bing)將其(qi)嵌入到我(wo)們(men)的組件中。這并(bing)(bing)不總是可(ke)(ke)能(neng)(neng)的(它可(ke)(ke)能(neng)(neng)是用其(qi)他語言編(bian)寫(xie)的,或者(zhe)太大而不能(neng)(neng)成(cheng)為(wei)一(yi)個庫(ku))并(bing)(bing)且會帶來一(yi)系列問題(功(gong)能(neng)(neng)的變化需要跨多個組件進(jin)行庫(ku)升(sheng)級),但是如(ru)果功(gong)能(neng)(neng)很關鍵并(bing)(bing)且經(jing)常被大規(gui)模訪問,這是打破組件間連(lian)接(jie)并(bing)(bing)使其(qi)成(cheng)為(wei)本地的可(ke)(ke)行方(fang)法(fa)。

2、隔離錯誤

錯(cuo)誤(wu)隔離很重要,原(yuan)因有兩個(ge)。一是(shi)個(ge)別錯(cuo)誤(wu)在分布式系統(tong)中更常見(許多移動(dong)部件的(de)簡單功(gong)能)。另(ling)一個(ge)是(shi),如(ru)果(guo)我們(men)不能防止整個(ge)系統(tong)中的(de)聯鎖錯(cuo)誤(wu),那(nei)么我們(men)首先就(jiu)失去了構建復雜(za)體的(de)理(li)由。

錯誤(wu)隔離(li)的(de)主要(yao)結(jie)構是(shi)SLA。每(mei)個組(zu)件(jian)都聲明了一(yi)些質量參(can)數,它(ta)將在執行(xing)功能時得到尊重。這些參(can)數可(ke)以包括延遲、錯誤(wu)率、并(bing)發性等。在此SLA之(zhi)外,調(diao)用它(ta)的(de)組(zu)件(jian)會(hui)假定它(ta)已失敗并(bing)需要(yao)自(zi)行(xing)采(cai)取適當的(de)措施。如果組(zu)件(jian)本身檢(jian)測到它(ta)無法維護其SLA,它(ta)可(ke)以先發制人(ren)地告訴其調(diao)用者暫(zan)停并(bing)稍后再(zai)來調(diao)用。為(wei)(wei)了保持整體系統健康,最好(hao)是(shi)快(kuai)速(su)失敗而不是(shi)在違(wei)反SLA的(de)情況下成功。兩(liang)個組(zu)件(jian)(一(yi)個被(bei)喚起(qi)的(de)和一(yi)個喚起(qi)的(de))都必須為(wei)(wei)此設置機制。

(1)保護調用者

A、超時(shi):如果(guo)被調用(yong)(yong)的(de)組件(jian)在其SLA內(nei)沒(mei)有響應,調用(yong)(yong)者(zhe)必須超時(shi)(放棄)并(bing)改用(yong)(yong)一些回退機(ji)制(即使它拋出錯(cuo)誤)來(lai)維(wei)護自(zi)己的(de)SLA并(bing)防(fang)止一連串的(de)SLA違規(gui)。

B、重試:由于網絡不可靠,分布式系統中的(de)(de)許多錯誤只(zhi)是隨機(ji)的(de)(de)。如果(guo)調用(yong)(yong)者(zhe)自己的(de)(de)SLA允許,調用(yong)(yong)者(zhe)可以重試該操(cao)作。重試的(de)(de)前(qian)提是操(cao)作的(de)(de)冪(mi)等性。即(ji)(ji)它(ta)不應(ying)該改變狀態或只(zhi)做一次,即(ji)(ji)使(shi)它(ta)被調用(yong)(yong)了兩次。

C、斷路(lu)器:如果對組件的(de)調(diao)(diao)(diao)(diao)用(yong)連續失敗,調(diao)(diao)(diao)(diao)用(yong)者可以(yi)通過“打(da)開電路(lu)”切斷連接并停止調(diao)(diao)(diao)(diao)用(yong)一段時間。由于調(diao)(diao)(diao)(diao)用(yong)者已經(jing)有(you)一些(xie)錯(cuo)誤場景的(de)備份行為,這(zhe)節省了調(diao)(diao)(diao)(diao)用(yong)者寶貴的(de)資源,這(zhe)些(xie)資源本(ben)來會被(bei)浪費掉(diao)。停止調(diao)(diao)(diao)(diao)用(yong)還(huan)可以(yi)減少(shao)被(bei)調(diao)(diao)(diao)(diao)用(yong)組件的(de)負載,并給(gei)它一些(xie)恢(hui)復(fu)的(de)喘息空(kong)間。

(2)保護被調用

A、隨(sui)(sui)機間隔:雖然重(zhong)試可以(yi)減少錯誤,但在(zai)一個頻繁(fan)使用的組件(jian)(jian)中出現一個小的性(xing)能(neng)問(wen)題可能(neng)會導致其所有調(diao)用者一次重(zhong)試。這種(zhong)“重(zhong)試風暴(bao)”會造成負載峰值并阻止該組件(jian)(jian)恢復。為(wei)了防止這種(zhong)情況,重(zhong)試應該在(zai)它們之(zhi)間有一個隨(sui)(sui)機的時間間隔,以(yi)便交錯加(jia)載。

B、背(bei)壓:如果一個組件(jian)檢測到自己承受過多(duo)的負載并且即將違反其SLA,它(ta)可(ke)以搶先開(kai)始丟棄新(xin)請(qing)求(qiu)(qiu),直(zhi)到其性能得到控制。這比接受它(ta)知道(dao)它(ta)不能在(zai)SLA內提供服務或沒有完全崩(beng)潰(kui)風險的請(qing)求(qiu)(qiu)要好得多(duo)。

3、在系統中建立緩沖區

(1)異步通信

消息總線之類的(de)異步通(tong)信(xin)通(tong)道允(yun)許調用(yong)遠程組件,而無需非常嚴格的(de)SLA依(yi)賴。通(tong)過讓被(bei)調用(yong)組件準備好而不是立即使用(yong)消息,系統對增(zeng)加的(de)工作負載的(de)需求變得更加靈活。

(2)彈性配置

可(ke)擴展(zhan)性最(zui)終歸(gui)結為充(chong)分利用可(ke)用硬(ying)件。但(dan)是,如果(guo)看到規模(mo)增長,讓(rang)系統緩(huan)口氣的(de)一個簡單方法是分配更(geng)多硬(ying)件。雖然這僅在我們(men)能夠(gou)承受的(de)成(cheng)本范(fan)圍內(nei)是可(ke)行的(de),但(dan)它為我們(men)提供了抵(di)御不可(ke)預(yu)測的(de)負載變化的(de)最(zui)后一道(dao)防線。

網站提醒和聲明
本站(zhan)為注冊(ce)用戶提供(gong)(gong)信息(xi)(xi)存儲空(kong)間(jian)(jian)服務,非(fei)“MAIGOO編(bian)輯”、“MAIGOO榜單研究員(yuan)(yuan)”、“MAIGOO文(wen)(wen)章(zhang)編(bian)輯員(yuan)(yuan)”上傳提供(gong)(gong)的文(wen)(wen)章(zhang)/文(wen)(wen)字均是(shi)注冊(ce)用戶自主(zhu)發布上傳,不代(dai)表(biao)本站(zhan)觀點,版(ban)權歸原作者(zhe)所有,如有侵權、虛假信息(xi)(xi)、錯誤(wu)信息(xi)(xi)或任何問題,請及(ji)時聯系我(wo)們,我(wo)們將在第一時間(jian)(jian)刪除(chu)或更正。 申請刪除>> 糾錯>> 投訴侵權>> 網頁上相關信(xin)息(xi)的(de)知識產權(quan)歸(gui)網站方(fang)所有(包括但不限于文字、圖片、圖表、著作(zuo)權(quan)、商(shang)標權(quan)、為用戶提供的(de)商(shang)業信(xin)息(xi)等),非經許(xu)可不得(de)抄襲或使(shi)用。
提交說明: 快速提交發布>> 查看提交幫助>> 注冊登錄>>
您還未登錄,依《網絡安全法》相關要求,請您登錄賬戶后再提交發布信息。點擊登錄>>如您還未注冊,可點擊注冊>>,感謝您的理解及支持!
發表評論
最新評論
暫無評論
相關推薦
分布式管控系統有哪些類型 分布式系統有哪些主要特征
分布式管控系統按工作方式和位置不同,可分為客戶端-服務器(C/S)系統、對等網絡(P2P)系統和混合系統三大類,不管是哪種分布式系統,一般都會具有分布性、自治性、并行性、全局性四大特征。下面一起來文章中詳細了解一下分布式管控系統有哪些類型以及分布式系統有哪些主要特征吧。
【音響大全】音響的種類有哪些 音響哪種好 音響選購完全攻略
隨著高科技的迅速發展,影音娛樂設備更新換代的越來越快,音響的功能不僅僅只有擴音了,它還具有立體環繞、虛擬環繞等多種音效,市面上音響的功能和款式各式各樣,那么,音響的種類有哪些呢?哪款音響好呢?下面,小編為大家講解音響的優點、適用人群,并分享最全的音響選購攻略,讓大家享受身臨其境的真實感。
音箱 家電選購 ★★★
8289 108
如何判別分布式系統的優劣 判斷分布式管控系統優劣的七大標準
分布式系統在各行各業的應用越來越廣泛,市面上的分布式系統產品也比較多,主要可以通過看核心技術、看功能覆蓋、看畫面還原度、看大屏同步性、看坐席延時性、看集中管控、看運維管理七個方面來判斷其優劣。下面一起來看看如何判別分布式系統的優劣以及判斷分布式管控系統優劣的七大標準吧。
【家用音響推薦】家用音響哪種好 常用的五類家庭音響大盤點
隨著人們生活水平的提高,無論是電影還是電視都不僅僅是局限于視覺效果上的震撼了,在聽覺效果上也有了更大的追求,那么,家用音響有哪些呢?家用音響哪種好呢?下面,小編為大家全面盤點常用的五類家庭音響,讓大家可以享受到真正的聽覺盛宴!
音箱 家電選購 ★★★
7887 109
分布式系統和集中式系統的區別有哪些 分布式系統好還是集中式系統好
分布式系統和集中式系統在系統架構、數據存儲、任務分配、應用場景等方面存在一定的差異,相比較而言,集中式系統具有架構簡單、易于管理和控制的優點,適用于對數據一致性要求較高的場景;而分布式系統具有架構靈活、可擴展性強的優點,適用于對數據處理能力和并發訪問能力要求較高的場景。下面一起來看看分布式系統和集中式系統的區別有哪些以及分布式系統好還是集中式系統好吧。