etcd裡的raft模組只實現了raft共識演算法,而像訊息的網路傳輸,資料儲存都由上層應用來完成。
下面是各個檔案(夾)的功能簡介:
用protocol buffer定義了一些需要序列化的資料結構,比如entry
和message
。
unstable
資料結構表示用於還沒有被使用者層持久化的資料,它維護了兩部分內容snapshot
和entries
。
這個檔案定義了乙個storage
介面,應用層需要實現這個介面,以提供儲存和查詢日誌的能力。
leader節點通過progress
這個資料結構來追蹤乙個follower的狀態,並根據progress
裡的資訊來決定每次同步的日誌項。
raft協議的具體實現就在這個檔案裡。其中最重要的就是step
函式,它用來處理不同的訊息。所以以後當我們想知道raft對某種訊息的處理邏輯時,到這裡找就對了。
node
的主要作用是應用層和共識模組(raft)的銜接。將應用層的訊息傳遞給底層共識模組,並將底層共識模組共識後的結果反饋給應用層。
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...
原始碼閱讀 Glide原始碼閱讀之with方法(一)
前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...
原始碼閱讀 Glide原始碼閱讀之load方法(二)
原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 首先,load方法有以下幾個過載方法 public requestbuilder load nullable bitmap bitmap public requestbuilder load nu...