1、Zookeeper理论基础
1.1、Zookeeper含义
Zookeeper是一个分布式协调应用程序服务器,其为分布式系统提供一致性服务。其一致性是通过Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。
下图是官网解释:
1.2、zookeeper如何保证一致性
zk是如何保证分布式系统一致性呢?是因为zk是具有以下几方面原因:
1.2.1 顺序一致性
从同一个客户端发起多个事务请求(写操作请求),最终会被严格按照发起顺序记录到zk中。
1.2.2 原子性
所有事务请求的结果在集群中所有主机的应用结果都是一致的。要么都应用成功,要么都运用失败。
1.2.3 单一视图
无论client连接的是zk集群中的哪台机器,其看的的数据模型都是一致的。
1.2.4 可靠性
一旦zk成功执行了某个事务,则其引发的服务器状态变化会被一直保留下来,直到另一个事务将其改变。
1.2.5 最终一致性
一旦zk成功执行了某个事务,zk可以保证在很短的时间后,客户端最终可以从任意的zk主机上读取到最新的数据。但不能保证实时读取。