Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

ZooKeeper 保证的读写一致性分别是什么?

查看完整题解

参考回答

直接回答

成功写入按全局顺序生效,可以按线性一致写理解。普通读只查询所连服务器已应用的状态,满足客户端顺序约束,但可能返回较旧的数据。

讲清原理

写请求由 Leader 获得法定票数后按序提交。各副本最终沿同一个提交序列前进。常用的 sync 后接同会话读取有助于追上 Leader 认为的进度,在极端情况下它仍没有一次真实法定人数操作的强保证。

ZAB 从提案、法定票数到按序应用
ZAB 从提案、法定票数到按序应用

例子与易错点

A 已看到改为 v2 的写请求成功,B 立刻向滞后副本查询,仍可能读到 v1。判断库存扣减这类并发修改,要靠版本条件或相应的写事务。

延伸阅读 ZooKeeper 怎样保证事务的先后顺序? · ZAB 协议是什么,为什么分恢复与广播? · 别的客户端写入后,我能立刻读到最新值吗?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。