芒果视频下载

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

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

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

健壯性(xing)是(shi)指在(zai)異(yi)常和危險情(qing)況下(xia)系(xi)統(tong)(tong)生存(cun)的能力,分布式(shi)系(xi)統(tong)(tong)一般(ban)具有(you)健壯性(xing),這是(shi)因為:

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

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

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

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

1、最小化組件間依賴

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

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

(1)重復數據

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

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

(2)非規范化數據

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

(3)庫

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

2、隔離錯誤

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

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

(1)保護調用者

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

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

C、斷(duan)路(lu)器:如果(guo)對(dui)組件的(de)調(diao)(diao)用(yong)連續失敗,調(diao)(diao)用(yong)者可(ke)以(yi)通過“打開(kai)電路(lu)”切(qie)斷(duan)連接并(bing)停止調(diao)(diao)用(yong)一段時間(jian)(jian)。由于調(diao)(diao)用(yong)者已(yi)經有一些(xie)錯誤(wu)場景的(de)備(bei)份行為,這節省(sheng)了調(diao)(diao)用(yong)者寶貴(gui)的(de)資(zi)(zi)源,這些(xie)資(zi)(zi)源本來(lai)會被(bei)浪費(fei)掉(diao)。停止調(diao)(diao)用(yong)還可(ke)以(yi)減少被(bei)調(diao)(diao)用(yong)組件的(de)負載(zai),并(bing)給它一些(xie)恢復的(de)喘息(xi)空間(jian)(jian)。

(2)保護被調用

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

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

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

可(ke)擴展性最終歸結(jie)為充(chong)分利用可(ke)用硬(ying)件。但是,如(ru)果看到規模增長,讓系統緩口氣的一(yi)個簡單(dan)方法(fa)是分配更多硬(ying)件。雖然這僅在我們(men)能夠承受的成本范圍內是可(ke)行的,但它為我們(men)提供了抵御不(bu)可(ke)預(yu)測的負載(zai)變化的最后一(yi)道防線。

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