您好,登錄后才能下訂單哦!
etcd是一種先進的key-value的存儲系統,本文主要是學習etcd的心得,如有誤解,敬請拍磚
主要分成三種形式的選舉,先說一下etcd節點的三種狀態,分別為leader,candidate和follower
第一種:初始選舉
A、B、C、D現在進場,那么誰當領導呢?A(變身candidatae)就分別找BCD談話,“我來當,你沒意見吧”。B\C都沒什么主見,就同意了,D雖然不同意,但是大家都這么說,只好也同意了。A就開始行使權利,定時從BCD同步日志,并發送心跳(heartbeat)
第二種,leader異常
A是領導,BCD是follower,大家正在工作。此時突然A肚子痛了上廁所(故障),BCD都有事,但是沒辦法匯報。BCD就商量了,咱們重新選個領導吧!于是B(變身candidate)主動單獨跟C、D詢問,"我來當領導,你們有意見沒有?"。CD都沒有意見,于是B就當了領導,那么此時A剛好回來啦,就發現這一幕,怎么辦?他們就一較高下,根據日志的步進數來決定誰當領導,因為A缺席了那么久,很多消息都沒有,所以就失敗了。于是A清理自己的消息,變成了follower。
第三種,follower異常
同上,但是肚子痛的是C,不是A。ABD正常工作,當C回來了,就直接成為follower。
第四種,初始的follower中在同一個時間同時變身(成為candidate),
A去找C談話了,B去跟D談話了。C答應跟A,D答應跟B,此時A去問D就被直接拒絕了,B問C也同樣被拒絕。A問B兩人都是candidate,誰怕誰啊!你也拒絕我,我也拒絕你。那么四個人怎么辦呢?A經過一個時間差(150ms~300ms)再次向C,D發起談話,此時,C,D都同意了A(B還沒有反應過來),此時A已經成為了leader,B發現已經有了leader了,重新成為了follower.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。