Zookeeper具有全局数据一致性、可靠性、顺序性、原子性以及实时性,可以说Zookeeper的其他特性都是为满足Zookeeper全局数据一致性这一特性。具体介绍如下:
1.全局数据一致性
每个服务器都保存一份相同的数据副本,客户端连接到集群的任意节点上,看到的目录树都是一致的(也就是数据都是一致的),这也是Zookeeper最重要的特征。
2.可靠性
如果消息(对目录结构的增删改查)被其中一台服务器接收,那么将被所有的服务器接收。
3.顺序性
Zookeeper顺序性主要分为全局有序和偏序两种,其中全局有序是指如果在一台服务器上消息A在消息B前发布,则在所有服务器上消息A都将在消息B前被发布;偏序是指如果一个消息B在消息A后被同一个发送者发布,A必将排在B前面。无论全局有序还是偏序,其目的都是为了保证Zookeeper全局数据一致。
4.数据更新原子性
一次数据更新操作要么成功(半数以上节点成功),要么失败,不存在中间状态。
5.实时性
Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。