1. 程式人生 > >Redis叢集節點變化如何處理?

Redis叢集節點變化如何處理?

  為了選舉,第一步,就是slave自增它的currentEpoch值,然後向其他masters請求投票(需求支援,votes)。slave通過向其他masters傳播“FAILOVER_AUTH_REQUEST”資料包,然後最長等待2倍的NODE_TIMEOUT時間,來接收反饋。一旦一個master向此slave投票,將會響應“FAILOVER_AUTH_ACK”,此後在2 * NODE_TIMOUT時間內,它將不會向同一個masterslaves投票;雖然這對保證安全上沒有必要,但是對避免多個slaves同時選舉時有幫助的。slave將會丟棄那些epoch值小於自己的currentEpoch
AUTH_ACK反饋,即不會對上一次選舉的投票計數(只對當前輪次的投票計數)。一旦此slave獲取了大多數masterACKs,它將在此次選舉中獲勝;否則如果大多數master不可達(在2 * NODE_TIMEOUT)或者投票額不足,那麼它的選舉將會被中斷,那麼其他的slave將會繼續嘗試。