芒果视频

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

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

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

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

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

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

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

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

1、最小化組件間依賴

分(fen)布式(shi)系(xi)統的組(zu)件(jian)相(xiang)互(hu)通(tong)信以獲取數(shu)據或功能。在這兩種情(qing)況(kuang)下,我們都可以通(tong)過將數(shu)據/功能推送到調(diao)用組(zu)件(jian)而不是遠程訪問來減少連接(jie)需求。

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

(1)重復數據

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

經常訪問但(dan)有一定規律性變(bian)化的(de)數(shu)據可(ke)以(yi)通(tong)過定期緩存(cun)刷(shua)新來(lai)臨時緩存(cun)。更改(gai)頻率更低或從(cong)不更改(gai)的(de)數(shu)據(例(li)如客戶姓名)可(ke)以(yi)直接存(cun)儲(chu)在(zai)我們的(de)組(zu)件中(zhong)。如果/當這(zhe)些(xie)(xie)數(shu)據發生變(bian)化時,我們可(ke)能(neng)需要(yao)做(zuo)一些(xie)(xie)額(e)外的(de)工作,但(dan)是這(zhe)種增加的(de)小開銷(xiao)通(tong)常是值得(de)的(de),因為它可(ke)以(yi)提高彈性。

(2)非規范化數據

非規(gui)范化是在組件內發(fa)生的一種特(te)殊形(xing)式(shi)的重復。如果我(wo)們(men)使用關(guan)系數(shu)據(ju)存儲,我(wo)們(men)可以通過在主實體中(zhong)復制數(shu)據(ju)來降低查看多個(ge)實體的成本(ben)。本(ben)地化分(fen)散數(shu)據(ju)以獲(huo)得更好性能(neng)的原則也適用于此。

(3)庫

為了減(jian)輕另(ling)一(yi)個(ge)組(zu)件的功(gong)能(neng)(neng)依賴性,我們可(ke)(ke)(ke)以將遠(yuan)程組(zu)件打包為庫并(bing)將其嵌入(ru)到我們的組(zu)件中。這并(bing)不(bu)總是(shi)可(ke)(ke)(ke)能(neng)(neng)的(它可(ke)(ke)(ke)能(neng)(neng)是(shi)用(yong)其他(ta)語(yu)言編寫的,或者(zhe)太大而不(bu)能(neng)(neng)成為一(yi)個(ge)庫)并(bing)且(qie)會帶來(lai)一(yi)系列問(wen)題(功(gong)能(neng)(neng)的變化需要跨多個(ge)組(zu)件進行庫升級),但是(shi)如果功(gong)能(neng)(neng)很關(guan)鍵并(bing)且(qie)經常被大規模(mo)訪問(wen),這是(shi)打破組(zu)件間連接并(bing)使其成為本地的可(ke)(ke)(ke)行方法。

2、隔離錯誤

錯(cuo)誤(wu)隔離很重要,原因有兩個(ge)(ge)。一(yi)是個(ge)(ge)別錯(cuo)誤(wu)在分布式系統中更常見(許(xu)多(duo)移動部件(jian)的(de)簡單功能)。另(ling)一(yi)個(ge)(ge)是,如果我(wo)們不能防止整個(ge)(ge)系統中的(de)聯(lian)鎖(suo)錯(cuo)誤(wu),那么我(wo)們首(shou)先就(jiu)失去了(le)構建復雜體(ti)的(de)理由(you)。

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

(1)保護調用者

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

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

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

(2)保護被調用

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

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

3、在系統中建立緩沖區

(1)異步通信

消(xiao)息總線(xian)之(zhi)類的異步通(tong)信通(tong)道允許調(diao)用遠程組(zu)件,而(er)無(wu)需非常嚴格的SLA依(yi)賴。通(tong)過讓被調(diao)用組(zu)件準備好而(er)不是立即使用消(xiao)息,系統對增加(jia)的工(gong)作(zuo)負載(zai)的需求變得更(geng)加(jia)靈活。

(2)彈性配置

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

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