ZooKeeper
ZooKeeper
-
顺序一致性,来自任意特定客户端的更新都会按其发送顺序被提交。也就是说,如果一个客户端将
Znode z 的值更新为a ,在之后的操作中,它又将z 的值更新为b ,则没有客户端能够在看到z 的值是b 之后再看到值a (如果没有其他对z 的更新) 。 -
原子性,每个更新要么成功,要么失败。这意味着如果一个更新失败,则不会有客户端会看到这个更新的结果。
-
单一系统映像,一个客户端无论连接到哪一台服务器,它看到的都是同样的系统视图。这意味着,如果一个客户端在同一个会话中连接到一台新的服务器,它所看到的系统状态不会比 在之前服务器上所看到的更老。当一台服务器出现故障,导致它的一个客户端需要尝试连接集合体中其他的服务器时,所有滞后于故障服务器的服务器都不会接受该 连接请求,除非这些服务器赶上故障服务器。
-
持久性
/ 可靠性,一个更新一旦成功,其结果就会持久存在并且不会被撤销。这表明更新不会受到服务器故障的影响。 -
实时性:一旦一个事务被成功应用后,
Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。
二、Zookeeper 设计目标
2.1 目标一:简单的数据模型

2.2 目标二:构建集群
可以由一组

2.3 目标三:顺序访问
对于来自客户端的每个更新请求,