Zookeeper 入门(一)------特点与数据结构
Zookeeper :Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。官网下载地址:https://archive.apache.org/dist/zookeeper/Zookeeper 工作机制:Zookeeper 从设计模式角度来讲,是一个基于观察者模式的分布式服务管理框架。它用来存储和管理大家都关心的数据。然后接受观察者的注册,一旦这些数据的状态...
Zookeeper :
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
官网下载地址:
https://archive.apache.org/dist/zookeeper/
Zookeeper 工作机制:
Zookeeper 从设计模式角度来讲,是一个基于观察者模式的分布式服务管理框架。它用来存储和管理大家都关心的数据。然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应反应。
1.服务端启动时,去注册信息(创建的都是临时节点)
2.客户端获取当前服务器列表,并注册监听
3.当有服务节点上下线时,客户端会收到服务端上下线通知。
4.调用process()方法,重新获取服务列表,并注册监听。
注意:zookeeper的监听每次只能使用一次,触发后需要重新注册
Zookeeper 特点:

根据图可以看出:
- Zookeeper:一个领导者(leader),多个跟随者(follwer)组成的集群
- 集群中只有半数以上节点存活,Zookeeper集群能正常服务
- 全局数据一致,每个Server保存一份相同数据副本,Client无论连接到哪个server,数据都是一致的
- 更新请求顺序进行,来自同一个Client的更新请求按其发送顺序执行
- 数据更新原子性,一次数据更新要么成功,要么失败。
- 实时性,在一定事件范围内,Client能读到最新数据
Zookeeper 数据结构:
Zookeeper数据模型结构与Unix文件系统很类似,整体上可以看做成一个数,每个节点成为一个znode。每个znode默认能储存1MB的数据,每个znode的路径都是唯一标识.
应用场景:
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
统一命名服务:
分布式环境下,经常需要对应用/服务进行统一命名,便于识别。(IP容易记住,而域名不容易)
统一配置管理:
分布式环境下,配置文件同步非常常见,zookeeper每个节点的数据是一致的
1)可将配置信息写入zookeeper上的一个znode
2)客户端监听这个znode
3)一旦znode中的数据被修改,zookeeper将通知各个客户端服务器
统一集群管理:
zookeeper可以实现实时监控节点状态变化:
1)可将节点信息写入zookeeper上的一个znode
2)监听这个znode可获取它的实时状态变化
服务的动态上下线:
客户端通过监听,洞察服务端的上下线
软负载均衡:
在zookeeper中记录每台服务器的访问数,让访问数最少得服务器去处理最新的请求
学习年限不足,知识过浅,说的不对请见谅。
世界上有10种人,一种是懂二进制的,一种是不懂二进制的。
更多推荐



所有评论(0)