0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分布式系統(tǒng)模式—High-Water Mark

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 12:56 ? 次閱讀

作者: Unmesh Joshi

譯者: java達人

預(yù)寫日志中的索引,顯示最近一次成功的復(fù)制。

問題

服務(wù)器崩潰并重新啟動后,可使用“Write-Ahead Log”模式恢復(fù)狀態(tài)。但是,如果服務(wù)器發(fā)生故障,Write-Ahead Log不足以提供可用性。如果單個服務(wù)器發(fā)生故障,則客戶端將無法運行,直到服務(wù)器重新啟動。為了獲得更多可用的系統(tǒng),我們可以在多個服務(wù)器上復(fù)制日志。使用領(lǐng)導者和追隨者模式,領(lǐng)導者會將其所有日志條目復(fù)制到追隨者法定數(shù)?,F(xiàn)在,如果領(lǐng)導者失敗,則可以選舉新的領(lǐng)導者,并且客戶可以像以前一樣繼續(xù)使用集群。但是仍然有幾處可能出問題:

? leader在將其日志發(fā)送給任何追隨者之前可能會失敗。? 領(lǐng)導者可能會在向一些追隨者發(fā)送日志條目時失敗,無法將其發(fā)送給大多數(shù)的追隨者。

在這些錯誤場景中,一些追隨者可能在其日志中丟失條目,而一些追隨者可能擁有比其他追隨者更多的條目。因此,對于每個follower來說,了解日志的哪一部分對客戶端是安全可用的就變得很重要了。

解決方案

high-water mark是日志文件的一個索引,它記錄已知已成功復(fù)制到追隨者Quorum的最后一個日志條目。在復(fù)制過程中,領(lǐng)導者還會將high-water mark傳遞給追隨者。集群中的所有服務(wù)器應(yīng)該只向請求低于high-water mark更新的客戶端傳輸數(shù)據(jù)。

這是操作順序:

Figure 1: High-Water Mark

對于每個日志條目,leader將其附加到其本地預(yù)寫日志中,然后將其發(fā)送給所有追隨者。

leader (class ReplicationModule...)
private Long appendAndReplicate(byte[] data) { Long lastLogEntryIndex = appendToLocalLog(data); logger.info("Replicating log entries from index " + lastLogEntryIndex); replicateOnFollowers(lastLogEntryIndex); return lastLogEntryIndex; }
private void replicateOnFollowers(Long entryAtIndex) { for (final FollowerHandler follower : followers) { replicateOn(follower, entryAtIndex); //send replication requests to followers } }

追隨者處理復(fù)制請求并將日志條目附加到它們的本地日志中。在成功附加日志條目之后,它們將擁有的最新日志條目索引響應(yīng)到leader。該響應(yīng)還包括服務(wù)器的當前Generation Clock。

follower (class ReplicationModule...)
private ReplicationResponse handleReplicationRequest(ReplicationRequest replicationRequest) { List

Leader在收到響應(yīng)時跟蹤在每個服務(wù)器上復(fù)制的日志索引。

class ReplicationModule…
recordReplicationConfirmedFor(response.getServerId(), response.getReplicatedLogIndex()); long logIndexAtQuorum = computeHighwaterMark(logIndexesAtAllServers(), config.numberOfServers()); if (logIndexAtQuorum > replicationState.getHighWaterMark()) { var previousHighWaterMark = replicationState.getHighWaterMark(); applyLogAt(previousHighWaterMark, logIndexAtQuorum); replicationState.setHighWaterMark(logIndexAtQuorum); }

通過查看所有追隨者的日志索引和領(lǐng)導者本身的日志,并獲取大多數(shù)服務(wù)器上可用的索引,可以計算出High-Water Mark。

class ReplicationModule…
Long computeHighwaterMark(List

領(lǐng)導者將high-water mark作為常規(guī)心跳的一部分或作為單獨的請求向追隨者傳播。追隨者隨后相應(yīng)地設(shè)定了他們的high-water mark。

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9727

    瀏覽量

    87426
  • 分布式系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    19572
  • Mark
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    8555
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    雙電機分布式驅(qū)動汽車高速穩(wěn)定性機電耦合控制

    摘要:為了利用所設(shè)計的雙電機防滑差速驅(qū)動系統(tǒng)來提高分布式驅(qū)動汽車的動力學性能,在前期同軸耦合驅(qū)動控制理論研究的基礎(chǔ)上,開展該車的高速穩(wěn)定性機電耦合控制研究。建立并驗證包含所設(shè)計驅(qū)動系統(tǒng)在內(nèi)的
    發(fā)表于 06-18 16:37

    多通道電源管理芯片在分布式能源系統(tǒng)中的優(yōu)化策略

    摘要: 隨著分布式能源系統(tǒng)的廣泛應(yīng)用,對電源管理芯片的性能要求日益提升。本文深入探討了多通道電源管理芯片在分布式能源系統(tǒng)中的優(yōu)化策略,以國科安芯的ASP4644芯片為例,從電氣特性、工
    的頭像 發(fā)表于 05-16 15:22 ?149次閱讀

    安科瑞Acrel-1000DP分布式光伏監(jiān)控系統(tǒng)在嘉興亨泰分布式光伏項目中的應(yīng)用

    摘要 分布式光伏發(fā)電系統(tǒng)其核心特點是發(fā)電設(shè)備靠近用電負荷中心,通常安裝在屋頂、建筑立面或閑置空地上,截至2025年,分布式光伏發(fā)電系統(tǒng)在全球和中國范圍內(nèi)取得了顯著發(fā)展,成為能源轉(zhuǎn)型和可
    的頭像 發(fā)表于 04-10 13:17 ?247次閱讀
    安科瑞Acrel-1000DP<b class='flag-5'>分布式</b>光伏監(jiān)控<b class='flag-5'>系統(tǒng)</b>在嘉興亨泰<b class='flag-5'>分布式</b>光伏項目中的應(yīng)用

    分布式光伏發(fā)運維系統(tǒng)實際應(yīng)用案例分享

    安科瑞劉鴻鵬 摘?要 分布式光伏發(fā)電系統(tǒng)其核心特點是發(fā)電設(shè)備靠近用電負荷中心,通常安裝在屋頂、建筑立面或閑置空地上,截至2025年,分布式光伏發(fā)電系統(tǒng)在全球和中國范圍內(nèi)取得了顯著發(fā)展,
    的頭像 發(fā)表于 04-09 14:46 ?261次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)運維<b class='flag-5'>系統(tǒng)</b>實際應(yīng)用案例分享

    淺談分布式光伏系統(tǒng)在工業(yè)企業(yè)的設(shè)計及應(yīng)用

    主要對工業(yè)廠區(qū)屋頂分布式光伏發(fā)電系統(tǒng)的設(shè)計及應(yīng)用進行研究,為工業(yè)廠區(qū)能源供應(yīng)提供一種全新的解決思路和技術(shù)支持。介紹了工業(yè)廠區(qū)屋頂分布式光伏系統(tǒng)及其優(yōu)勢,分析了工業(yè)廠區(qū)屋頂
    的頭像 發(fā)表于 03-21 14:24 ?382次閱讀
    淺談<b class='flag-5'>分布式</b>光伏<b class='flag-5'>系統(tǒng)</b>在工業(yè)企業(yè)的設(shè)計及應(yīng)用

    安科瑞能量管理系統(tǒng)在江西某啤酒廠分布式光伏發(fā)電項目中的應(yīng)用

    安科瑞徐赟杰18706165067 1.摘要 新型電力系統(tǒng)下,各省市分布式光伏裝機逐年增高,由于分布式光伏的波動性,光伏在并入電網(wǎng)后給原有的配電網(wǎng)增加了很大的不穩(wěn)定性,對電力系統(tǒng)的安全
    的頭像 發(fā)表于 02-11 16:24 ?373次閱讀
    安科瑞能量管理<b class='flag-5'>系統(tǒng)</b>在江西某啤酒廠<b class='flag-5'>分布式</b>光伏發(fā)電項目中的應(yīng)用

    分布式云化數(shù)據(jù)庫有哪些類型

    分布式云化數(shù)據(jù)庫有哪些類型?分布式云化數(shù)據(jù)庫主要類型包括:關(guān)系型分布式數(shù)據(jù)庫、非關(guān)系型分布式數(shù)據(jù)庫、新SQL分布式數(shù)據(jù)庫、以列方式存儲數(shù)據(jù)、
    的頭像 發(fā)表于 01-15 09:43 ?421次閱讀

    基于ptp的分布式系統(tǒng)設(shè)計

    在現(xiàn)代分布式系統(tǒng)中,精確的時間同步對于確保數(shù)據(jù)一致性、系統(tǒng)穩(wěn)定性和性能至關(guān)重要。PTP(Precision Time Protocol)是一種網(wǎng)絡(luò)協(xié)議,用于在分布式
    的頭像 發(fā)表于 12-29 10:09 ?490次閱讀

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    提供了async版本供該場景使用。 當前,wantParams中“sessionId”字段在遷移流程中被系統(tǒng)占用,建議開發(fā)者在wantParams中定義其他key值存儲該分布式數(shù)據(jù)對象生成的id,避免
    發(fā)表于 12-24 09:40

    安科瑞Acrel-1000DP分布式光伏監(jiān)控系統(tǒng)在8.3MWp分布式光伏發(fā)電中的應(yīng)用

    安科瑞分布式光伏監(jiān)控系統(tǒng)在上海汽車變速器有限公司 8.3MWp分布式光伏發(fā)電項目中的應(yīng)用
    發(fā)表于 12-16 15:03 ?0次下載

    分布式光伏發(fā)電系統(tǒng)的應(yīng)用

    分布式光伏發(fā)電系統(tǒng)現(xiàn)狀? Q/GDW1480-2015 《分布式電源接入電網(wǎng)技術(shù)規(guī)定》:分布式電源并網(wǎng)電壓等級可根據(jù)各并網(wǎng)點裝機容量進行初步選擇,推薦如下: 8kW 及以下可接入220
    的頭像 發(fā)表于 11-21 16:31 ?622次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)電<b class='flag-5'>系統(tǒng)</b>的應(yīng)用

    分布式光纖測溫解決方案

    分布式光纖測溫解決方案
    的頭像 發(fā)表于 11-12 01:02 ?518次閱讀
    <b class='flag-5'>分布式</b>光纖測溫解決方案

    解決電網(wǎng)逆流難題,實現(xiàn)分布式光伏發(fā)電全部自發(fā)自用

    自用模式時,需要配置防逆流裝置。在分布式光伏系統(tǒng)中,當光伏發(fā)電的功率大于本地負荷功率時,多余的電力無法被本地負荷完全消納,就會流入電網(wǎng),形成逆流。電網(wǎng)逆流會導致電網(wǎng)
    的頭像 發(fā)表于 10-31 08:09 ?1667次閱讀
    解決電網(wǎng)逆流難題,實現(xiàn)<b class='flag-5'>分布式</b>光伏發(fā)電全部自發(fā)自用

    分布式輸電線路故障定位中的分布式是指什么

    所謂分布式指的是產(chǎn)品的部署方式,是相對于集中式而言的。 一、部署方式 分散安裝:分布式輸電線路故障定位系統(tǒng)中的采集裝置需要安裝在輸電線路的多個位置,通常是每隔一定距離設(shè)置一個監(jiān)測點,以確保對整條線路
    的頭像 發(fā)表于 10-16 11:39 ?643次閱讀
    <b class='flag-5'>分布式</b>輸電線路故障定位中的<b class='flag-5'>分布式</b>是指什么

    分布式光纖測溫系統(tǒng)DTS

    隨著城市用電量的持續(xù)增長,電纜負荷日益加重,電纜故障頻發(fā)成為一個不容忽視的問題。傳統(tǒng)的電纜監(jiān)測手段已經(jīng)無法滿足對電纜狀態(tài)實時、精準監(jiān)控的需求,因此部分供電公司采用鼎信分布式光纖測溫系統(tǒng)(DTS)來
    的頭像 發(fā)表于 06-27 17:18 ?1033次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品