1.Zookeeper工作原理:
1.1.Zookeeper的工作机制
- 1.Zookeeper从设计模式角度来理解:是一个基于
观察者模式设计
的分布式服务管理框架; - 2.Zookeeper
负责存储和管理大家都关心的数据
,然后接受观察者的注册
,一旦这些数据的状态发生变化,Zookeeper就会去负责通知
已经在Zookeeper上注册的那些观察者
做出相应的反应。
1.2.Zookeeper数据结构:
- 1.Zookeeper数据结构模型与Unix系统类似,
可以看成一棵树
,每个节点称之为:ZNode
; - 2.
每个ZNode默认存储数据1MB
,所以Zookeeper一般就是存储一些配置信息
,不可以存储大数据量的信息;每个ZNode都可以通过其路径唯一标识
1.3.Zookeeper集群环境下的特点:
- 1.Zookeeper:只有
一个领导者
(Leader),多个跟随者(Follower)组成的集群 - 2.集群中只要有
半数以上节点
存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台
服务器 - 3.
全局数据一致
:每个Server保存一份相同的数据副本
,Client无论连接到哪个Server,数据都是一致的 - 4.更新请求顺序执行,来自
同一个Client
的更新请求按其发送顺序依次执行
。 (先进先出) - 5.数据更新
原子性
(更新要么都成功,要么都失败),一次数据更新要么成功,要么失败
- 6.
实时性
,Zookeeper数据同步的时间很快,在一定时间范围内,Client就能读到最新数据
1.4.集群环境下Zookeeper的选举机制:
a.Zookeeper选举机制——第一次启动