zoukankan      html  css  js  c++  java
  • Redis集群架构中主节点选举机制

    Redi集群三主三从架构

    选举流程

    1.每个slave会与自己的master通讯,当slave发现自己的master变为fail时。每个slave都会参与竞争,推举自己为master。
    2.增加currentEpoch的值,并且每个slave向集群中的其他所有节点广播FAILOVER_AUTH_REQUEST。
    3.其他master会受到多个slave的广播,但是只会给第一个slave回复FAILOVER_AUTH_ACK。
    4.slave接收到ack之后,会使用过半机制开始统计。即:当前有多少master给自己ack,如果超过一半的master发送ack,则成为master。
    5.广播PONG,通知给集群中的其节点。
    至此,选举流程结束。

    思考

    Redis集群中,为什么Master的数量要使用奇数?使用偶数是否可以?
    答案是可以。但是因为采用过半机制的选举流程,在高可用方面来说,与偶数是一致的。
    例如:
    在9个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master
    在10个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master
    在高可用方面,9台master与10台master一致。所以通常会使用奇数。假设现在reids内存不足需要拓展,我们将master的数量加到11台,就高可用方面来说,就算其中5台master发送故障,也可以自动选举新的master。

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/wugang/p/14490649.html
Copyright © 2011-2022 走看看