ZooKeeper数据一致性

ZooKeeper为存储的数据提供了一致性保证,不管应用从哪个服务端获取数据,都能获取到一致的数据。ZooKeeper内部使用原子广播协议(Zab)作为其一致性复制的核心,并通过对服务端请求的排序达到数据一致性的保障要求。

ZooKeeper的数据一致性保障

ZooKeeper是高性能、可扩展的,为应用提供了以下的数据一致性保障:
1)顺序一致性
来自客户端的更新将严格按照客户端发送的顺序处理;
2)原子性
更新或者成功或者失败,不存在部分成功或者部分失败的场景;
3)单一视图
无论客户端连接到哪个服务器,看到的都是一样的视图;
4)可靠性
一旦一个更新生效,它将一直保留,直到再次更新;
5)实时性
在特定的一段时间内,任何系统的改变都能被客户端看到,或者被监听到。

Zab:原子广播协议

在ZooKeeper的集群环境中,有leader、follower和observer节点,leader负责将写操作包装为一个事务执行,follower参与写操作执行过程的投票,而observer则仅接收最后的INFORM消息,不参与更新的投票过程。
当follower收到一个写请求时,follower将其转交给leader,leader将其封装为一个事务并处理,每个事务都包含了一个zxid,zxid分为两个部分,epoch和counter。epoch用于标识当前的leader,一个新的leader产生࿰

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值