芒果视频下载

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

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

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

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

1、分布(bu)式系(xi)統(tong)的處(chu)理和控制功能是分布(bu)的,任何(he)站點發生的故障都不會給整(zheng)個系(xi)統(tong)造成太大(da)的影響。

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

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

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

1、最小化組件間依賴

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

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

(1)重復數據

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

經(jing)常訪問但有一定規律性變(bian)化的數(shu)據(ju)(ju)可(ke)以(yi)通(tong)過(guo)定期緩存刷新來臨(lin)時緩存。更改(gai)頻率更低或從不更改(gai)的數(shu)據(ju)(ju)(例如客(ke)戶姓名)可(ke)以(yi)直接存儲在(zai)我(wo)們(men)的組件中(zhong)。如果(guo)/當這些數(shu)據(ju)(ju)發生變(bian)化時,我(wo)們(men)可(ke)能需要做一些額外(wai)的工作,但是這種增加(jia)的小開銷通(tong)常是值得的,因(yin)為(wei)它可(ke)以(yi)提高彈(dan)性。

(2)非規范化數據

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

(3)庫

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

2、隔離錯誤

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

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

(1)保護調用者

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

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

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

(2)保護被調用

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

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

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

可(ke)擴展性最終歸(gui)結為(wei)充分利用(yong)可(ke)用(yong)硬(ying)件(jian)。但是(shi)(shi),如果(guo)看到規模增(zeng)長,讓系統(tong)緩口氣的(de)(de)一個簡(jian)單方法是(shi)(shi)分配更多硬(ying)件(jian)。雖然這(zhe)僅在我(wo)們(men)能夠承受的(de)(de)成本范(fan)圍內是(shi)(shi)可(ke)行的(de)(de),但它為(wei)我(wo)們(men)提供了(le)抵御不(bu)可(ke)預測的(de)(de)負載變化(hua)的(de)(de)最后一道防(fang)線。

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