芒果视频下载

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

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

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

健壯性(xing)是指(zhi)在異常和危險(xian)情況下(xia)系統生存(cun)的能力,分(fen)布式系統一般具有健壯性(xing),這(zhe)是因為(wei):

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

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

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

分(fen)布式(shi)(shi)系(xi)統一般都具有健壯性(xing),不過(guo)面對越來越普(pu)遍隨機故(gu)障,如果系(xi)統構(gou)建不當的(de)話,也會導(dao)致(zhi)系(xi)統運行(xing)出現問(wen)題,要構(gou)建健壯的(de)分(fen)布式(shi)(shi)系(xi)統,主要注意以下幾點(dian):

1、最小化組件間依賴

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

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

(1)重復數據

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

經常(chang)訪問但(dan)(dan)有一定規律性變化的(de)數據可(ke)以通過定期緩存刷新(xin)來臨時(shi)緩存。更(geng)改頻(pin)率(lv)更(geng)低或從(cong)不更(geng)改的(de)數據(例如客戶姓名)可(ke)以直接(jie)存儲在我們(men)的(de)組件中。如果/當這(zhe)些數據發生變化時(shi),我們(men)可(ke)能(neng)需要做一些額外的(de)工(gong)作,但(dan)(dan)是這(zhe)種增加的(de)小開(kai)銷通常(chang)是值得的(de),因(yin)為它(ta)可(ke)以提高彈性。

(2)非規范化數據

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

(3)庫

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

2、隔離錯誤

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

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

(1)保護調用者

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

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

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

(2)保護被調用

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

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

3、在系統中建立緩沖區

(1)異步通信

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

(2)彈性配置

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

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