apache-zookeeper - ZooKeeper 如何保证 "Single System Image"?

标签 apache-zookeeper distributed-system consistency 2phase-commit

Consistency Guarantees ZooKeeper 程序员指南的部分,它指出 ZooKeeper 将提供“单一系统镜像”保证:

A client will see the same view of the service regardless of the server that it connects to.

根据ZAB协议(protocol),只有超过半数的follower认可一个提议,leader才能提交交易。因此,很可能并非所有关注者都处于相同状态。

如果follower的状态不一样,ZooKeeper如何保证“单一系统状态”?


引用资料:

最佳答案

领导者仅等待来自法定人数的追随者的响应以确认提交交易。这并不意味着一些追随者不需要承认交易或可以“说不”。

最终,当其余的追随者处理来自领导者的提交消息或作为同步的一部分时,将具有与主人相同的状态(有一些延迟)。 (不要与最终一致性混淆)

follower状态能延迟多长时间取决于配置项syncLimit & tickTime ( https://zookeeper.apache.org/doc/current/zookeeperAdmin.html )

跟随者在被丢弃之前最多可以落后 syncLimit * tickTime 时间单位。

关于apache-zookeeper - ZooKeeper 如何保证 "Single System Image"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40797443/

相关文章:

c++ - C++ 中的内存模型和单例

java - 在生成的类上应用构建器模式或类似模式

apache-kafka - 消费者和生产者失败,错误 : "Connection to 0 was disconnected before the response was read"

Solrj 无法从 Solr Cloud 示例连接到 zookeeper

java - Zookeeper - 跟随领导者时出现异常 java.lang.IllegalArgumentException

java - 如何使我的 Java Swing 应用程序成为客户端-服务器应用程序?

java - 在Debian中的单个节点中的hadoop,hbase,zookerper中的安装问题

mysql - 分布式数据库实时监控架构

messaging - 逻辑时钟 : Lamport Timestamps

database - 分布式 (NoSQL) 数据库中的一致性效应