会话及状态
ZooKeeper客户端通过句柄为ZooKeeper服务建立一个会话。这个会话一旦被创建,句柄将以CONNECTING状态开始启动。客户端将尝试连接到其中一个ZooKeeper服务器,如果连接成功,它的状态变为CONNECTED。一般情况下,只有上述这两种状态。如果一个可回复的错误发生,比如会话终结或认证失败,或者如果应用程序明确地关闭了句柄,句柄将转入CLOSED状态。
异步事件处理机制
Watch是ZooKeeper提供的异步事件处理机制。
ZooKeeper可以为所有的读操作设置Watch,这些操作包括:exists()、getChildren()及getData。Watch事件是一次性的触发器,当Watch的对象状态发生改变时,将会触发此对象上Watch所对应的事件。
ACL
ZooKeeper使用ACL来对Znode进行访问控制。ACL的实现和UNIX文件访问许可非常相似:它使用许可位来对一个节点为的不同操作进行允许或禁止的权限控制。
一致性保证
顺序一致性
客户端的更新顺序与它们被发送的顺序相一致。
原子性
更新操作要么成功要么失败,没有第三种结果。
单系统镜像
无论客户端连接到哪一个服务器,他将看到相同的ZooKeeper视图。
可靠性
一旦一个更新操作被应用,那么在客户端再次更新它之前,其值将不会改变。
ZooKeeper客户端通过句柄为ZooKeeper服务建立一个会话。这个会话一旦被创建,句柄将以CONNECTING状态开始启动。客户端将尝试连接到其中一个ZooKeeper服务器,如果连接成功,它的状态变为CONNECTED。一般情况下,只有上述这两种状态。如果一个可回复的错误发生,比如会话终结或认证失败,或者如果应用程序明确地关闭了句柄,句柄将转入CLOSED状态。
异步事件处理机制
Watch是ZooKeeper提供的异步事件处理机制。
ZooKeeper可以为所有的读操作设置Watch,这些操作包括:exists()、getChildren()及getData。Watch事件是一次性的触发器,当Watch的对象状态发生改变时,将会触发此对象上Watch所对应的事件。
ACL
ZooKeeper使用ACL来对Znode进行访问控制。ACL的实现和UNIX文件访问许可非常相似:它使用许可位来对一个节点为的不同操作进行允许或禁止的权限控制。
一致性保证
顺序一致性
客户端的更新顺序与它们被发送的顺序相一致。
原子性
更新操作要么成功要么失败,没有第三种结果。
单系统镜像
无论客户端连接到哪一个服务器,他将看到相同的ZooKeeper视图。
可靠性
一旦一个更新操作被应用,那么在客户端再次更新它之前,其值将不会改变。