1、Zookeeper是干什么的?
Zookeeper是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的 ZAB 协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。
我们从官方网站入手,了解Zookeeper到底是用来干什么的。Zookeeper官方网站 http://zookeeper.apache.org
从网站首页我们可以看见官方的介绍(上方框起部分):
Zookeeper是一个集中式服务,用于维护配置信息、命名(域名服务)、提供分布式同步和组服务(集群管理)。
2、如何学习Zookeeper?
我们主要需要学习"一致性"、"Paxos算法"、"ZAB协议"、"CAP定理"。
3、一致性
zookeeper的一致性主要体现在以下几个方面
3.1 顺序一致性
从同一个客户端发起的 n 多个事务请求(写操作),最终将会严格按照其 发起顺序被应用到 zk 中。
3.2 原子性
事务请求的结果在集群中所有主机上的应用情况都是一致。
3.3 单一视图
客户端无论连接的是哪个 zk 集群中的主机,读取到的数据都是一样的。
3.4 可靠性
一旦服务端成功应用了某事务,则该事务所引起的状态变更会被一直保留,除 非另一个事务对其进行修改
3.5 最终一致性
一个事务若被成功应用,zk 可以保证在一段时间(很短)时间内,客户 端最终一定可以读取到该最新的状态。但不能保证实时性。
网友评论