芒果视频下载

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

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

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

健(jian)壯性是(shi)指在異常和危險(xian)情況(kuang)下系統生存的能(neng)力(li),分布(bu)式系統一般具有健(jian)壯性,這是(shi)因為:

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

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

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

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

1、最小化組件間依賴

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

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

(1)重復數據

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

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

(2)非規范化數據

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

(3)庫

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

2、隔離錯誤

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

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

(1)保護調用者

A、超(chao)時:如果被調用(yong)的組件在其SLA內沒有響應,調用(yong)者必須超(chao)時(放(fang)棄)并改用(yong)一(yi)些(xie)回退機制(即使它拋出錯誤(wu))來維護(hu)自己(ji)的SLA并防止(zhi)一(yi)連串的SLA違(wei)規。

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

C、斷路器(qi):如果對組(zu)件(jian)的調用(yong)(yong)連續(xu)失(shi)敗,調用(yong)(yong)者(zhe)(zhe)(zhe)可(ke)以通(tong)過“打開電路”切斷連接并(bing)停止調用(yong)(yong)一(yi)段時(shi)間。由(you)于調用(yong)(yong)者(zhe)(zhe)(zhe)已經有一(yi)些錯誤場景(jing)的備份行為,這節省(sheng)了調用(yong)(yong)者(zhe)(zhe)(zhe)寶(bao)貴(gui)的資源,這些資源本來會被(bei)浪(lang)費掉。停止調用(yong)(yong)還可(ke)以減(jian)少被(bei)調用(yong)(yong)組(zu)件(jian)的負載,并(bing)給它一(yi)些恢(hui)復(fu)的喘息(xi)空間。

(2)保護被調用

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

B、背壓:如果(guo)一個組件檢測到自己承受過多(duo)的(de)負載并(bing)且即將違反其SLA,它可以搶(qiang)先開始丟棄(qi)新請求,直到其性(xing)能得到控制。這比接受它知道它不能在SLA內提(ti)供服(fu)務或沒有完全崩潰風險的(de)請求要好(hao)得多(duo)。

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

可擴展性最終歸(gui)結為充分利用可用硬件。但是(shi),如果(guo)看(kan)到規模(mo)增(zeng)長(chang),讓系(xi)統(tong)緩口氣的一(yi)(yi)個簡單(dan)方法是(shi)分配(pei)更(geng)多(duo)硬件。雖然(ran)這僅(jin)在我們能夠(gou)承受(shou)的成本范圍(wei)內是(shi)可行的,但它為我們提供了(le)抵(di)御不可預測的負(fu)載(zai)變(bian)化的最后一(yi)(yi)道防線(xian)。

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