介绍
ZooKeeper 由雅虎研究院开发,后来捐赠给了 Apache。ZooKeeper 是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的ZAB 协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。
顺序一致性:从同一个客户端发起的多个事务请求(写操作请求),最终会严格按照其发起顺序记录到 zk 中。
原子性:所有事务请求的结果在集群中所有 Server 上的应用情况是一致的。要么全部应用成功,要么都没有成功,不会出现部分成功,部分失败的情况。
单一视图:无论客户端连接的是集群中的哪台 Server,其读取到的数据模型中的数据都是一致的。
可靠性:一旦某事务被成功应用到了 zk,则会一直被保留下来,除非另一个事务将其修改。
最终一致性:一旦一个事务被成功应用,zk 可以保证在一段较短的时间内,客户端最终一定能够从服务端读取到最新的数据。但不能保证实时读取到。