raft 有關競選超時 vs 心跳超時的疑惑

2021-10-23 17:07:25 字數 705 閱讀 4894

raft協議這兩個超時時間是比較重要的,看著有些疑惑,

集群剛啟動的時候,心跳會超時,這時候follower是直接成為candidator麼?還是還要在心跳超時的基礎上等待乙個競選超時才變成 candidator?

成為candidator並且傳送投票請求給follower,這個candidator這時候本身等待投票是有個超時的,這個超時也是競選超時麼?

心跳超時和競選超時哪個大?心跳超時一般設定為多少?

集群已經正常運轉leader剛掛掉的時候,我們是依靠心跳超時還是競選超時來觸發選舉流程?

1.心跳超時後,follower 等待自身競選超時後成為 candidate 身份並發起選舉。raft 使用了乙個叫隨機選舉超時(randomize election timeout)的方式,使每個 server 的超時時間不一樣,這樣就避免了多個 candidate 同時發起選舉的問題。

2.選舉也有時限,規定時間內沒有獲取到足夠多的票數,則當前 leader 選舉競選失敗;但這個時限不是 election timeout ,election timeout 是指心跳超時後發起競選的時限。

3.心跳超時可以自己配置,看你自己的網路規模和拓撲;競選超時是隨機的,大概在幾十到幾百毫秒;通常情況下,心跳超時比競選超時長得多,心跳是秒級,競選是毫秒級。

4.前面已經回答了,follower 檢測到心跳超時後,等待自身競選超時後發起選舉,也就是兩個時限都超了。

補充:

kosaraju 班長競選

大學班級選班長,n 個同學均可以發表意見 若意見為 a b 則表示 a 認為 b 合適,意見具有傳遞性,即 a 認為 b 合適,b 認為 c 合適,則 a 也認為 c 合適 勤勞的 tt 收集了m條意見,想要知道最高票數,並給出乙份候選人名單,即所有得票最多的同學,你能幫幫他嗎?本題有多組資料。第一...

C 班長競選

大學班級選班長,n 個同學均可以發表意見 若意見為 a b 則表示 a 認為 b 合適,意見具有傳遞性,即 a 認為 b 合適,b 認為 c 合適,則 a 也認為 c 合適,給出m個意見,找到得票最多的人 dfs求出每個點所在的連通分量,然後縮點,並記錄縮點之後每個點的入度 要將圖反向 遍歷得到每個...

C 班長競選

大學班級選班長,n 個同學均可以發表意見 若意見為 a b 則表示 a 認為 b 合適,意見具有傳遞性,即 a 認為 b 合適,b 認為 c 合適,則 a 也認為 c 合適 勤勞的 tt 收集了m條意見,想要知道最高票數,並給出乙份候選人名單,即所有得票最多的同學。從圖中找出所有強連通分量進行縮點,...