Zookeeper是什么?

从设计模式的角度来理解,是基于观察者模式设计的分布式服务管理框架。

他负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些观察者的状态发生改变,Zookeeper就将负责通知已经在Zookeeper上的那些观察者做出相应的反应。(是什么)
Zookeeper=文件系统+通知机制

Zookeeper的特性

1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。
3)数据全局一致性,每个server中保存一份相同的数据副本,Client 无论连接到 哪个Server,数据都是一致的。
4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行
5)数据更新原子性,一次数据更新要么成功,要么失败。
6)实时性,在一定时间范围内,Client能读取到最新的数据(读取数据的时间非常短,因为数据量非常非常小)。

Zookeeper的使用场景

1)配置管理可以交由Zookeeper实现
可以将配置信息写入Zookeeper的一个ZNode,各个客户端服务器监听这个ZNode
一旦ZNode中的数据被修改,Zookeeper将通知各个客户端服务器。

Zookeeper的数据结构

Zookeeper数据模型的结构与Unix文件系统很类似,整体可以看做一棵树,每个节点称作一个ZNode。每个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识

Zookeeper到底是什么?能干什么,以及Zookeeper的特性,数据结构等_数据