芒果视频下载

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

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

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

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

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

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

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

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

1、最小化組件間依賴

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

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

(1)重復數據

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

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

(2)非規范化數據

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

(3)庫

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

2、隔離錯誤

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

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

(1)保護調用者

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

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

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

(2)保護被調用

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

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

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

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

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