ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序能够基于它实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。node
从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到ZooKeeper中去服务器
全部事务请求的处理结果在整个集群中全部机器上的应用状况是一致的,要么都成功,要么都不成功数据结构
不管客户端链接的是哪个ZooKeeper服务器,其看到的服务端数据模型都是一致的负载均衡
一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引发的服务端状态变动将会被一致保留下来,除非有领一个事务又对其进行了变动分布式
一般人们看到的实时性是,一旦一个事务被成功应用,那么客户端可以当即从服务端上读取到这个事务变动后的最新数据状态。可是Zookeeper仅仅保证在必定的时间段内,客户端最终必定可以从服务端上读取到最新的数据状态。性能
致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务。设计
Leader,Follower,Observer
Leader提供读写服务,由过半服务选举出来
Follower,Observer都能共提供读服务,惟一的区别自安于,Observer不参与Leader选举过程,也不参与写操做的“过半写成功”策略。server
ZooKeeper的每一个ZNode上都会存储数据,对应于每一个ZNode,Zookeeper都会为其维护一个叫作Stat的数据结构,Stat中记录了这个ZNode的三个数据版本。分别是version(当前版本),cversion(当前子节点的版本)和aversion(当前ACL版本)队列
权限控制策略,create,read,write,delete,admin事务
最成熟的,开源的,免费的,普遍应用。