ZooKeeper
1.定义
1.ZooKeeper是一个分布式协调服务。
2.ZooKeeper的数据是保存在内存中,这意味着它有着高吞吐、低延迟的响应。
3..ZooKeeper是非常注重高性能、高可用、严格的有序访问。
4.ZooKeeper的集群模式是主从模式。主从模式最常见的问题就是主节点挂机,ZooKeeper保证了这点。
5.Zookeeper有俩种状态:可用状态 和 不可用状态(或者说是无主状态) 如果主节点服务挂掉,去选举出新的主节点去切换,这个时间官方压测说是200ms。
6.ZooKeeper理论上可以当作数据库使用,但是使用时千万不用把它当作数据库,因为ZooKeeper最大的读写比列是 10:1 大量的读操作会减弱ZooKeeper的执行性能。
7.ZooKeeper是一个目录树结构,有节点的概念node,每一个节点可以保存数据,官方设置每个节点1MB上限,节点分俩种:1.临时节点 2.持久化节点
8.ZooKeeper提供的名称空间类型与文件系统,名称都是由斜杠 (/) 分割的路径元素序列,ZooKeeper的名称空间中的每个节点都是由路径标识。
2.承诺
Zookeeper非常快速,而且非常简单,但是,由于其目标是构造复杂的服务的基础,因此它提供了一些保证,这些是:
顺序一致性:客户端的更新按发送的顺序应用
原子性:更新成功或失败,没有中间结果
单系统映像:无论服务器连接多少的服务器,客户端都能看到相同的视图
可靠性:一旦应用更新,它从那时起持续到客户端覆盖更新
及时性:系统的客户视图保证再特定的时间范围是最新的
3.简单的API
ZooKeeper的设计目标之一是提供一个非常简单的编程式接口,因此,它仅支持以下操作:
create:在树中某一个位置创建节点
delete:删除节点
exists:测试某个位置是否还有节点
获取数据:从节点读取数据
设置数据:将数据写入节点
get children:检索节点中的子节点列表
sync:等待传播数据