国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

這篇具有很好參考價值的文章主要介紹了【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

假設(shè)有一個數(shù)據(jù)庫,數(shù)據(jù)庫里有一張?zhí)貏e大的表,里面有幾十億,甚至上百億的數(shù)據(jù)。更進一步說,假設(shè)這一張表的數(shù)據(jù)量多達幾十個 TB,甚至上百個 TB,那么如果用 MySQL 之類的數(shù)據(jù)庫,單臺數(shù)據(jù)庫服務(wù)器上的磁盤可能都不夠放這一張表的數(shù)據(jù)!
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

假如你手頭有一個超大的數(shù)據(jù)集,幾百 TB!那你還是別考慮傳統(tǒng)的數(shù)據(jù)庫技術(shù)來存放了。因為用一臺數(shù)據(jù)庫服務(wù)器可能根本都放不下,所以我們考慮一下分布式存儲技術(shù)?對了!這才是解決這個問題的辦法。

咱們完全可以搞多臺機器嘛!比如搞 20 臺機器,每臺機器上就放 1 / 20 1/20 1/20 的數(shù)據(jù)。舉個例子,比如總共 20TB 的數(shù)據(jù),在每臺機器上只要把 1TB 就可以了,1TB 應(yīng)該還好吧?每臺機器都可以輕松加愉快的放下這么多數(shù)據(jù)了。

所以說,把一個超大的數(shù)據(jù)集拆分成多片,給放到多臺機器上去,這就是所謂的分布式存儲。
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

那分布式存儲系統(tǒng)是啥呢?分布式存儲系統(tǒng),當然就是負責把一個超大數(shù)據(jù)集拆分成多塊,然后放到多臺機器上來存儲,接著統(tǒng)一管理這些分散在多臺機器上存儲的數(shù)據(jù)的一套系統(tǒng)。

比如說經(jīng)典的 Hadoop 就是這類系統(tǒng),然后 FastDFS 也是類似的。如果你可以腦洞打開,從思想本質(zhì)共通的層面出發(fā),那你會發(fā)現(xiàn),其實類似 Elasticsearch、Redis Cluster 等等系統(tǒng),本質(zhì)都是如此。這些都是基于分布式的系統(tǒng)架構(gòu),把超大數(shù)據(jù)拆分成多片給你存放在多臺機器上。

咱們這篇文章是從分布式系統(tǒng)架構(gòu)層面出發(fā),不拘泥于任何一種技術(shù),所以姑且可以設(shè)定:這套分布式存儲系統(tǒng),有兩種進程。

  • 一個進程是 Master 節(jié)點,就在一臺機器上,負責統(tǒng)一管控分散在多臺機器上的數(shù)據(jù)。
  • 另外一批進程叫做 Slave 節(jié)點,每臺機器上都有一個 Slave 節(jié)點,負責管理那臺機器上的數(shù)據(jù),跟 Master 節(jié)點進行通信。

【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

這個時候又有一個問題了,那么萬一上面那 20 臺機器上,其中 1 臺機器宕機了咋整呢?這就尷尬了,兄弟,這會導(dǎo)致本來完整的一份 20TB 的數(shù)據(jù),最后有 19TB 還在了,有 1TB 的數(shù)據(jù)就搞丟了,因為那臺機器宕機了啊。所以說你當然不能允許這種情況的發(fā)生,這個時候就必須做一個數(shù)據(jù)副本的策略。

比如說,我們完全可以給每一臺機器上的那 1TB 的數(shù)據(jù)做 2 個副本的冗余,放在別的機器上,然后呢,萬一說某一臺機器宕機,沒事啊,因為其他機器上還有他的副本。我們來看看這種多副本冗余的架構(gòu)設(shè)計圖。
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

上面那個圖里的深藍色的 1TB 數(shù)據(jù) 01,代表的是 20TB 數(shù)據(jù)集中的第一個 1TB 數(shù)據(jù)分片。從上圖中可以看到,它有 3 個副本,分別在三臺機器中都有淺藍色的方塊,代表了它的三個副本。這樣的話,一份數(shù)據(jù)就有了 3 個副本了。其他的數(shù)據(jù)也是類似。

這個時候我們假設(shè)有一臺機器宕機了,比如下面這臺機器宕機,必然會導(dǎo)致 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片的其中一個數(shù)據(jù)副本丟失。如下圖所示:
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

那這個時候要緊嗎?不要緊,因為 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片,他還有另外 2 個副本在存活的兩臺機器上呢!所以如果有人要讀取數(shù)據(jù),完全可以從另外兩臺機器上隨便挑一個副本來讀取就可以了,數(shù)據(jù)不會丟的。

現(xiàn)在有一個問題,比如說有個兄弟要讀取 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片,那么他就會找 Master 節(jié)點,說:你能不能告訴我 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片人在哪里???在哪臺機器上???我需要讀他??!

那么這個時候,Master 節(jié)點就需要從 1TB 數(shù)據(jù) 01 的 3 個副本里選擇一個出來,告訴人家說:兄弟,在哪臺機器上,有 1 個副本,你可以去那臺機器上讀 1TB 數(shù)據(jù) 01 的一個副本就 OK 了。

但是現(xiàn)在的問題是,Master 節(jié)點此時還不知道 1TB 數(shù)據(jù) 01 的副本 3 已經(jīng)丟失了,那萬一 Master 節(jié)點還是通知人家去讀取一個已經(jīng)丟失的副本 3,肯定是不可以的。

所以,我們怎么才能讓 Master 節(jié)點知道副本 3 已經(jīng)丟失了呢?

其實也很簡單,每臺機器上負責管理數(shù)據(jù)的 Slave 節(jié)點,都每隔幾秒(比如說 1 秒)給 Master 節(jié)點發(fā)送一個 心跳。那么,一旦 Master 節(jié)點發(fā)現(xiàn)一段時間(比如說 30 秒內(nèi))沒收到某個 Slave 節(jié)點發(fā)送過來的心跳,此時就會認為這個 Slave 節(jié)點所在機器宕機了,那臺機器上的數(shù)據(jù)副本都丟失了,然后 Master 節(jié)點就不會告訴別人去讀那個丟失的數(shù)據(jù)副本。

大家看看下面的圖,一旦 Slave 節(jié)點宕機,Master 節(jié)點收不到心跳,就會認為那臺機器上的副本 3 就已經(jīng)丟失了,此時絕對不會讓別人去讀那臺宕機機器上的副本 3。
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

那么此時,Master 節(jié)點就可以通知人家去讀 1TB 數(shù)據(jù) 01 的副本 1 或者副本 2,哪個都行,因為那兩個副本其實還是在的。舉個例子,比如可以通知客戶端去讀副本 1,此時客戶端就可以找那臺機器上的 Slave 節(jié)點說要讀取那個副本 1。

這個時候又有另外一個問題,那就是 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片此時只有副本 1 和副本 2 這兩個副本了,這就不足夠 3 個副本啊。因為我們預(yù)設(shè)的是每個數(shù)據(jù)分片都得有 3 個副本的。大家想想,此時如何給這個數(shù)據(jù)分片增加 1 個副本呢?

很簡單,Master 節(jié)點一旦感知到某臺機器宕機,就能感知到某個數(shù)據(jù)分片的副本數(shù)量不足了。此時,就會生成一個副本復(fù)制的任務(wù),挑選另外一臺機器來從有副本的機器去復(fù)制一個副本。

比如看下面的圖,可以挑選第四臺機器從第二臺機器去復(fù)制一個副本。
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

但是,現(xiàn)在這個復(fù)制任務(wù)是有了,我們怎么讓機器 4 知道呢?其實也很簡單,機器 4 不是每秒都會發(fā)送一次心跳么?當機器 4 發(fā)送心跳過去的時候,Master 節(jié)點就通過心跳響應(yīng)把這個復(fù)制任務(wù)下發(fā)給機器 4,讓機器 4 從機器 2 復(fù)制一個副本好了。

同樣,我們來一張圖,看看這個過程:
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計
看上圖,現(xiàn)在機器 4 上是不是又多了一個 1TB 數(shù)據(jù) 01 的副本 3 ?那么 1TB 數(shù)據(jù) 01 這個數(shù)據(jù)分片是不是又變成 3 個副本了?

那反過來,如果說此時機器 3 突然恢復(fù)了,他上面也有一個 1TB 數(shù)據(jù) 01 的副本 3,相當于此時 1TB 數(shù)據(jù) 01 就有 4 個副本了,副本不就多余了嗎?

沒關(guān)系,一旦 Master 節(jié)點感知到機器 3 復(fù)活,會發(fā)現(xiàn)副本數(shù)量過多,此時會生成一個刪除副本任務(wù)。他會在機器 3 發(fā)送心跳的時候,下發(fā)一個刪除副本的指令,讓機器 3 刪除自己本地多余的副本就可以了。這樣,就可以保持副本數(shù)量只有 3 個。

一樣的,大家來看看下面的圖。
【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計

實際上,這種 數(shù)據(jù)分片存儲 、多副本冗余、宕機感知、自動副本遷移、多余副本刪除,這套機制對于 Hadoop、Elasticsearch 等很多系統(tǒng)來說,都是類似的。

所以筆者在這里強烈建議大家,一定好好吸收一下這種分布式系統(tǒng)、中間件系統(tǒng)底層數(shù)據(jù)容錯架構(gòu)的思想。文章來源地址http://www.zghlxwxcb.cn/news/detail-445253.html

到了這里,關(guān)于【軟件開發(fā)】大規(guī)模分布式系統(tǒng)的容錯架構(gòu)設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 無人機支持的空中無蜂窩大規(guī)模MIMO系統(tǒng)中上行鏈路分布式檢測

    無人機支持的空中無蜂窩大規(guī)模MIMO系統(tǒng)中上行鏈路分布式檢測

    在無人機(UAV)支持的空中蜂窩自由大規(guī)模多輸入多輸出(mMIMO)系統(tǒng)中,上行鏈路分布式檢測涉及以下幾個關(guān)鍵概念和步驟: “無蜂窩”意味著系統(tǒng)不是圍繞傳統(tǒng)的蜂窩結(jié)構(gòu)組織的,而是通過分散的多個基站協(xié)作提供覆蓋和容量,而不是單個固定的基站。 “上行鏈路”(

    2024年02月22日
    瀏覽(26)
  • 華為云云耀云服務(wù)器L實例評測|基于華為云云耀云服務(wù)器L實例搭建EMQX大規(guī)模分布式 MQTT 消息服務(wù)器場景體驗

    華為云云耀云服務(wù)器L實例評測|基于華為云云耀云服務(wù)器L實例搭建EMQX大規(guī)模分布式 MQTT 消息服務(wù)器場景體驗

    EMQX 是一款國內(nèi)開發(fā)的大規(guī)模分布式MQTT消息服務(wù)器,它旨在為物聯(lián)網(wǎng)應(yīng)用提供高效可靠的連接,實時處理和分發(fā)消息以及事件流數(shù)據(jù)。作為一個關(guān)鍵的物聯(lián)網(wǎng)基礎(chǔ)設(shè)施組件,EMQX為企業(yè)和開發(fā)者提供了一個強大的工具,用于構(gòu)建各種規(guī)模和復(fù)雜度的物聯(lián)網(wǎng)與云應(yīng)用。 EMQX的主要

    2024年02月08日
    瀏覽(25)
  • 【軟件架構(gòu)設(shè)計】支持大規(guī)模系統(tǒng)的設(shè)計模式和原則

    【軟件架構(gòu)設(shè)計】支持大規(guī)模系統(tǒng)的設(shè)計模式和原則

    今天,即使是小型初創(chuàng)公司也可能不得不處理數(shù) TB 的數(shù)據(jù)或構(gòu)建支持每分鐘(甚至一秒鐘!)數(shù)十萬個事件的服務(wù)。所謂“規(guī)模”,通常是指系統(tǒng)應(yīng)在短時間內(nèi)處理的大量請求/數(shù)據(jù)/事件。 嘗試以幼稚的方式實現(xiàn)需要處理大規(guī)模的服務(wù),在最壞的情況下注定要失敗,或者在最

    2024年02月13日
    瀏覽(22)
  • 【軟件開發(fā)】從單機到分布式

    【軟件開發(fā)】從單機到分布式

    問題:由于流量越來越大出現(xiàn)服務(wù)器性能問題。 對架構(gòu)增加了一臺服務(wù)器,應(yīng)用和數(shù)據(jù)庫分別部署到不同的服務(wù)器上,對于開發(fā)和測試沒有任何影響,只需要應(yīng)用服務(wù)器新增一個遠程調(diào)用數(shù)據(jù)庫服務(wù)器的連接,有效地緩解了應(yīng)用服務(wù)器負載的壓力。 問題:隨著請求流量的進

    2024年02月02日
    瀏覽(23)
  • 谷歌內(nèi)部開發(fā)AI大語言模型“鵝”;OpenAI CEO 尋求大規(guī)模AI芯片全球生產(chǎn)投資

    谷歌內(nèi)部開發(fā)AI大語言模型“鵝”;OpenAI CEO 尋求大規(guī)模AI芯片全球生產(chǎn)投資

    ?? AI新聞 ?? 谷歌內(nèi)部開發(fā)AI大語言模型“鵝” 摘要 :谷歌正在積極將AI技術(shù)融入其產(chǎn)品中,并為提升員工效率而開發(fā)了一個名為“鵝”的AI大語言模型。這一模型僅供公司內(nèi)部團隊使用,旨在輔助新產(chǎn)品的開發(fā)。據(jù)悉,“鵝”基于Google“25年的工程專業(yè)知識”訓(xùn)練而成,能

    2024年02月21日
    瀏覽(23)
  • 大規(guī)模語言模型--LLaMA 家族

    大規(guī)模語言模型--LLaMA 家族

    LLaMA 模型集合由 Meta AI 于 2023 年 2 月推出, 包括四種尺寸(7B 、13B 、30B 和 65B)。由于 LLaMA 的 開放性和有效性, 自從 LLaMA 一經(jīng)發(fā)布, 就受到了研究界和工業(yè)界的廣泛關(guān)注。LLaMA 模型在開放基準的各 種方面都取得了非常出色的表現(xiàn), 已成為迄今為止最流行的開放語言模型。大

    2024年04月25日
    瀏覽(23)
  • LLaMA(大規(guī)模機器學(xué)習(xí)和分析)

    LLaMA(大規(guī)模機器學(xué)習(xí)和分析)是一個先進的軟件平臺,是Meta 推出 AI 語言模型 LLaMA,一個有著 上百億數(shù)量級參數(shù)的大語言模型用于大規(guī)模部署和管理機器學(xué)習(xí)模型。借助LLaMA,組織可以高效地在大型數(shù)據(jù)集上訓(xùn)練和部署模型,縮短投放市場的時間,并提高預(yù)測模型的準確性。

    2024年02月11日
    瀏覽(20)
  • 基于Spark的大規(guī)模日志分析

    摘要: 本篇文章將從一個實際項目出發(fā),分享如何使用 Spark 進行大規(guī)模日志分析,并通過代碼演示加深讀者的理解。 本文分享自華為云社區(qū)《【實戰(zhàn)經(jīng)驗分享】基于Spark的大規(guī)模日志分析【上進小菜豬大數(shù)據(jù)系列】》,作者:上進小菜豬。 隨著互聯(lián)網(wǎng)的普及和應(yīng)用范圍的擴

    2024年02月09日
    瀏覽(22)
  • 軟件測試/測試開發(fā)/全日制/測試管理丨Git分布式版本控制系統(tǒng)

    軟件測試/測試開發(fā)/全日制/測試管理丨Git分布式版本控制系統(tǒng)

    分布式版本控制: Git是一種分布式版本控制系統(tǒng),每個開發(fā)者都可以擁有完整的代碼倉庫的拷貝,不依賴中央服務(wù)器。這使得團隊成員可以在本地獨立工作,并且不需要持續(xù)的網(wǎng)絡(luò)連接。 代碼倉庫: Git用來存儲代碼的地方被稱為倉庫(Repository)。倉庫可以分為本地倉庫和遠程

    2024年01月18日
    瀏覽(31)
  • ChatGPT大規(guī)模封鎖亞洲地區(qū)賬號

    ChatGPT大規(guī)模封鎖亞洲地區(qū)賬號

    我是盧松松,點點上面的頭像,歡迎關(guān)注我哦! 在毫無征兆的情況下,從3月31日開始OpenAI大規(guī)模封號,而且主要集中在亞洲地區(qū),特別是ip地址在臺灣、日本、香港三地的,命中率目測40%。新注冊的賬號、Plus也不好使了。 如果你登陸的時候出現(xiàn)“提示無法加載歷史信息”或

    2023年04月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包