因为zookeeper的leader在得到大半数节点的ack后就会通知节点commit,然后返回给客户端。如果此时少半数的节点还没有commit并且客户端在接到集群的commit之后访问到了少半数节点岂不是没有读到最新的数据吗?
因为zookeeper的leader在得到大半数节点的ack后就会通知节点commit,然后返回给客户端。如果此时少半数的节点还没有commit并且客户端在接到集群的commit之后访问到了少半数节点岂不是没有读到最新的数据吗?
1 回答2.2k 阅读
1 回答1.1k 阅读
1.1k 阅读
对啊,你直接读 Zookeeper 确实可能会脏读。
所以推荐的方式是 Watch,而非直接读。