芒果视频

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

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

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

健壯性是指在異常(chang)和危險情況下(xia)系統(tong)生存的能力,分布式系統(tong)一般具有健壯性,這(zhe)是因為:

1、分布(bu)式(shi)系統的(de)處理(li)和(he)控制(zhi)功能是分布(bu)的(de),任何(he)站點(dian)發生的(de)故障都不會給整個系統造(zao)成太大的(de)影響(xiang)。

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

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

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

1、最小化組件間依賴

分布(bu)式系統的(de)組(zu)件(jian)(jian)相互通(tong)信以(yi)獲取數據(ju)或功(gong)能。在(zai)這(zhe)兩種情況(kuang)下(xia),我(wo)們(men)都可以(yi)通(tong)過將(jiang)數據(ju)/功(gong)能推送到調用組(zu)件(jian)(jian)而不是遠程訪問來減少連接(jie)需求。

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

(1)重復數據

如果(guo)我們經(jing)常從另一(yi)個組件訪問一(yi)些數據,我們可(ke)以(yi)在我們的組件中復制(zhi)它,而不必在運(yun)行時(shi)檢索它。這可(ke)以(yi)大大減(jian)少運(yun)行時(shi)依賴(lai)并(bing)幫助改善我們組件的延(yan)遲。

經(jing)常訪問但(dan)有(you)一定規(gui)律性(xing)變化的(de)數(shu)(shu)據可以通(tong)過定期緩(huan)存刷(shua)新(xin)來(lai)臨時緩(huan)存。更(geng)改(gai)頻(pin)率更(geng)低或從不更(geng)改(gai)的(de)數(shu)(shu)據(例如(ru)客(ke)戶姓(xing)名)可以直接(jie)存儲在我們(men)(men)的(de)組件中。如(ru)果(guo)/當(dang)這(zhe)(zhe)些(xie)(xie)數(shu)(shu)據發生(sheng)變化時,我們(men)(men)可能需要(yao)做(zuo)一些(xie)(xie)額外的(de)工作,但(dan)是這(zhe)(zhe)種增加的(de)小(xiao)開銷通(tong)常是值(zhi)得(de)的(de),因為它(ta)可以提高彈(dan)性(xing)。

(2)非規范化數據

非規(gui)范(fan)化(hua)是在(zai)組件內發(fa)生的一種(zhong)特殊形式(shi)的重復(fu)(fu)。如(ru)果我們使用(yong)關系數據存儲,我們可以(yi)通過(guo)在(zai)主實體(ti)中(zhong)復(fu)(fu)制數據來(lai)降(jiang)低(di)查看多個(ge)實體(ti)的成(cheng)本(ben)。本(ben)地化(hua)分(fen)散數據以(yi)獲(huo)得更好性能的原則也適(shi)用(yong)于此。

(3)庫

為了(le)減輕另一個組(zu)件(jian)(jian)(jian)的功(gong)(gong)能(neng)(neng)依賴性,我(wo)們可以將遠(yuan)程組(zu)件(jian)(jian)(jian)打包(bao)為庫(ku)(ku)并(bing)將其嵌(qian)入到我(wo)們的組(zu)件(jian)(jian)(jian)中(zhong)。這并(bing)不總是可能(neng)(neng)的(它可能(neng)(neng)是用其他語言編寫的,或者太大而不能(neng)(neng)成(cheng)為一個庫(ku)(ku))并(bing)且(qie)會帶來(lai)一系列(lie)問題(功(gong)(gong)能(neng)(neng)的變化需要跨(kua)多個組(zu)件(jian)(jian)(jian)進行庫(ku)(ku)升級),但是如果(guo)功(gong)(gong)能(neng)(neng)很關鍵并(bing)且(qie)經常(chang)被(bei)大規(gui)模(mo)訪(fang)問,這是打破組(zu)件(jian)(jian)(jian)間連接(jie)并(bing)使其成(cheng)為本地的可行方法。

2、隔離錯誤

錯誤隔離很(hen)重要,原因有兩個(ge)(ge)。一(yi)是個(ge)(ge)別錯誤在(zai)分布(bu)式系(xi)統(tong)中更常見(許多移動部件的(de)簡單功能)。另一(yi)個(ge)(ge)是,如(ru)果我(wo)們(men)不能防止整(zheng)個(ge)(ge)系(xi)統(tong)中的(de)聯鎖錯誤,那(nei)么(me)我(wo)們(men)首先(xian)就失去(qu)了構建(jian)復雜體的(de)理由。

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

(1)保護調用者

A、超時:如果被調用的(de)組件在其(qi)SLA內沒有(you)響應,調用者必須超時(放棄)并改用一些回退機制(即使它(ta)拋出錯誤)來維護自己的(de)SLA并防止一連串(chuan)的(de)SLA違規。

B、重試:由于網絡不可靠,分布式系統中(zhong)的(de)許多錯(cuo)誤只(zhi)是(shi)隨機的(de)。如果調(diao)用者自己的(de)SLA允許,調(diao)用者可以重試該操作。重試的(de)前提(ti)是(shi)操作的(de)冪等性(xing)。即它不應該改(gai)變(bian)狀態或只(zhi)做一(yi)次,即使它被調(diao)用了兩(liang)次。

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

(2)保護被調用

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

B、背壓:如(ru)果一個組件(jian)檢測(ce)到(dao)自(zi)己承受(shou)過多的(de)負(fu)載并且即將(jiang)違反其(qi)(qi)SLA,它(ta)可以(yi)搶(qiang)先開始丟(diu)棄新請求(qiu),直到(dao)其(qi)(qi)性(xing)能(neng)(neng)得(de)(de)到(dao)控制(zhi)。這比(bi)接受(shou)它(ta)知(zhi)道(dao)它(ta)不能(neng)(neng)在SLA內(nei)提供服務(wu)或(huo)沒有完(wan)全崩潰風險的(de)請求(qiu)要好得(de)(de)多。

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

可(ke)擴展性最終歸結為充(chong)分(fen)利用可(ke)用硬件。但是,如果看到規(gui)模增長,讓系統緩口氣的一個(ge)簡單方(fang)法是分(fen)配更多硬件。雖然這僅在我們能夠承受(shou)的成(cheng)本范(fan)圍內(nei)是可(ke)行的,但它為我們提供了抵(di)御不可(ke)預測的負載(zai)變化(hua)的最后(hou)一道防(fang)線(xian)。

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