ZooKeeper 保证的读写一致性分别是什么?
查看完整题解
参考回答
直接回答
成功写入按全局顺序生效,可以按线性一致写理解。普通读只查询所连服务器已应用的状态,满足客户端顺序约束,但可能返回较旧的数据。
讲清原理
写请求由 Leader 获得法定票数后按序提交。各副本最终沿同一个提交序列前进。常用的 sync 后接同会话读取有助于追上 Leader 认为的进度,在极端情况下它仍没有一次真实法定人数操作的强保证。
例子与易错点
A 已看到改为 v2 的写请求成功,B 立刻向滞后副本查询,仍可能读到 v1。判断库存扣减这类并发修改,要靠版本条件或相应的写事务。
延伸阅读 ZooKeeper 怎样保证事务的先后顺序? · ZAB 协议是什么,为什么分恢复与广播? · 别的客户端写入后,我能立刻读到最新值吗?
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。