03-patroni-节点选举
        【摘要】 01,集群正常状态一主两从。# 节点A是主节点,B和C是从节点。节点A会定期向etcd发送请求以更新领导者密钥,默认情况是10s更新一次(这是由参数loop_wait控制),更新的时候带了一个TTL。心跳机制: TTL > = loop_wait + retry_timeout * 2patroni进程每隔10秒(loop_wait)都会更新Leader key和TTL,如果Leader节点...
    
    
    
    01,集群正常状态
一主两从。

# 节点A是主节点,B和C是从节点。节点A会定期向etcd发送请求以更新领导者密钥,默认情况是10s更新一次(这是由参数loop_wait控制),更新的时候带了一个TTL。

心跳机制:
TTL > = loop_wait + retry_timeout * 2
 patroni进程每隔10秒(loop_wait)都会更新Leader key和TTL,如果Leader节点异常patroni进程无法及时更新Leader key,则会重新进行2次尝试(retry_timeout)。
 如果尝试了仍然无效。这个时候时间超过了TTL(生存时间)。领导者密钥就会过期,然后触发新的选举
2,当主未发送心跳信息

 # 发生新的选举很简单
 节点b和节点c此时会收到通知,当前已经没有领导者了,我们必须举行新的选举。
3,选举新主

# Patroni之间也通过rest api互相访问。他们首先会和曾经的领导者通信,会发现访问超时,然后他们通过rest api访问Patroni进程知道自己的wal_position位置。假设节点b和节点c现在都处于相同的wal_position,都等于100,那么他们会同时访问etcd,发送创建密钥的请求,然后开始领导争夺战。

# 两个节点到etcd之间,Node C率先创建了密钥。Node C上面就执行promote,成为了新的主库,Node B将成为新的从库。它会选择从Node C来进行复制。然后Node C就成为了leader。
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)