首页 理论教育 ZooKeeper的独特功能

ZooKeeper的独特功能

时间:2023-06-24 理论教育 版权反馈
【摘要】:ZooKeeper 是一个分布式协调服务,它具备全局一致性、可靠性、顺序性、原子性以及实时性特点,它是为用户的分布式应用程序提供协调服务。读特性由ZooKeeper 的一致性可知,客户端无论连接哪个Server,获取的均是同一个视图。Leader 将结果反馈给各Follower,并完成写操作,各Follower 节点同步leader 的数据,本次写操作完成。图5.2ZooKeeper 集群写流程图5.2ZooKeeper 集群写流程

ZooKeeper的独特功能

ZooKeeper 是一个分布式协调服务,它具备全局一致性、可靠性、顺序性、原子性以及实时性特点,它是为用户的分布式应用程序提供协调服务。

首先,ZooKeeper 是为别的分布式程序服务的,ZooKeeper 本身就是一个分布式程序(只要有半数以上节点存活,ZooKeeper 就能正常服务);其次,ZooKeeper 所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务等。

虽然ZooKeeper 可以提供各种服务,但是ZooKeeper 在底层其实只提供了两个功能:①管理(存储、读取)用户程序提交的数据,并保证全局一致性,就是说每个服务器都有一份相同的数据副本。一次数据更新要么成功,要么失败,不存在中间状态。保证全局有序,一台服务器上的甲消息在乙消息之前,那么所有服务器的顺序都是这样的;②为用户程序提供数据节点监听服务,保证客户端在一个时间段范围内获得服务器的更新或者失效信息。

(1)读特性

由ZooKeeper 的一致性可知,客户端无论连接哪个Server,获取的均是同一个视图。因此,读操作可以在客户端与任意节点间完成。ZooKeeper 集群读流程如图5.1 所示。

(www.xing528.com)

图5.1 ZooKeeper 集群读流程

(2)写特性

与读请求一样,客户端可以向任一个Server 提出写请求。Server 将这一请求发送给Leader。Leader 获取写请求后,会向所有节点发送这条写请求信息,询问是否能够执行这次写操作。Follower 节点根据自身情况给出反馈信息,向leader 节点发送ACK 应答消息,Leader 根据反馈信息,若获取到的可以执行写操作的数量大于实例总数的一半,则认为本次写操作可执行。Leader 将结果反馈给各Follower,并完成写操作,各Follower 节点同步leader 的数据,本次写操作完成。ZooKeeper 集群写流程如图5.2 所示。

图5.2 ZooKeeper 集群写流程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈