zk大半数节点ack后就commit的疑问

因为zookeeper的leader在得到大半数节点的ack后就会通知节点commit,然后返回给客户端。如果此时少半数的节点还没有commit并且客户端在接到集群的commit之后访问到了少半数节点岂不是没有读到最新的数据吗?

阅读 3.6k
2 个回答

对啊,你直接读 Zookeeper 确实可能会脏读。

所以推荐的方式是 Watch,而非直接读。

zk不保证强一致性,保证最终一致性,zk对读进一步保证了单调一致性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进