Zookeeper之数据同步原理

Zookeeper数据同步

zk通过三种不同的 集群角色来组成整个高性能集群,在zk中,客户端会随机连接到zk集群中的一个节点,如果是读请求,就直接从当前节点中读取数据,如果是写请求,那么请求会被转发给leader提交事务,然后leader会广播事务,只要超过半数节点写入成功,那么写请求就会被提交(类2PC事务,2PC是全数节点ok)

在这里插入图片描述

  • 问题:
    • 集群的leader节点如何选举出来?
    • leader节点崩溃以后,整个集群无法处理写请求,如何快速从其他节点里面选出出新的leader呢?
    • 原leader节点临时网络故障,恢复后脑裂怎么解决?
    • leader节点和各个follower节点的数据一致性如何保证?

一、ZAB协议

Zookeeper Atomic Broadcast,协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,Zookeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

1、介绍

包含两种基本模式,分别是 崩溃恢复、原子广播

​ 当整个集群在启动时,或者当leader 节点出现网络中断、崩溃等情况时,ZAB协议就会进入恢复模式并选举产生新的leader,当leader服务器选举出来后,并且集群中有过半机器和该leader节点完成数据同步后(同步指得是数据同步,用来保证集群中过半的机器能够和leader服务器的数据状态保持一致)。ZAB协议就会退出恢复模式。

​ 当集群中已经有过半的Follower 节点完成了和Leader 状态同步以后,那么整个集群就会进入消息广播模式。整个时候,在Leader 节点正常工作时,启动一台新的服务器加入到集群,那么这个服务器就会直接进入数据恢复模式,和L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值