Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中应用系统的一致性问题,
例如怎样避免同时操作同一数据造成脏读的问题。分布式系统中数据存在一致性的问题!!
* ZooKeeper 本质上是一个分布式的小文件存储系统。 提供基于类似于文件系统的目录树方式的数
据存储,并且可以对树中的节点进行有效管理。
* ZooKeeper 提供给客户端监控存储在zk内部数据的功能,从而可以达到基于数据的集群管理。 诸
如: 统一命名服务(dubbo)、分布式配置管理(solr的配置集中管理)、分布式消息队列
(sub/pub)、分布式锁、分布式协调等功能。
Leader
Follower
Observer
ZK也是Master/slave架构,但是与之前不同的是zk集群中的Leader不是指定而来,而是通过选举产 生。
1. Zookeeper:一个领导者(leader:老大),多个跟随者(follower:小弟)组成的集群。
2. Leader负责进行投票的发起和决议,更新系统状态(内部原理)
3. Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票
4. 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。
5. 全局数据一致:每个server保存一份相同的数据副本,Client无论连接到哪个server,数据都是一
致的。
6. 更新请求顺序进行(内部原理)
7. 数据更新原子性,一次数据更新要么成功,要么失败。
Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。
■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
■ 伪集群模式:就是在一台服务器上运行多个Zookeeper 实例;
■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”