目录
2021SC@SDUSC
Zookeeper是什么
Zookeeper 是一个分布式的,开源的分布式应用程序协调服务
可以实现配置管理,名字服务,提供分布式同步以及集群管理等功能。
事实上,Zookeeper本质是一个分布式小文件存储系统
Zookeeper的特性
1.顺序一致性
从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中;
2.原子性
所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况;
3.单一视图
所有客户端看到的服务端数据模型都是一致的;
4.可靠性
所有客户端看到的服务端数据模型都是一致的;
5.实时性
一旦一个事务被成功应用后,Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。
6.等待无关
慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
Zookeeper的应用场景
配置管理
当一个系统有极多个节点需要运行时,如果要对所有节点的某项设置更改,如果逐个修改效率极低且容易出错, Zookeeper可以处理这种问题,将配置信息保存在Zookeeper中,Zookeeper的watcher机制可以监视配置信息的状态,当配置信息发生变化时,每台机器都会收到Zookeeper的通知并更新配置信息。
命名服务
创建节点后,节点路径是唯一的,可以作为全局名称使用。
扫描二维码关注公众号,回复:
13305897 查看本文章
集群管理
每个加入集群的机器都会创建自己的节点,监控父节点的用户会收到通知并处理,离开时删除节点同理。
分布式锁
集群中每个节点的数据都一样,每个用户创建节点后作为锁,其他用户创建节点时可以检测该节点是否锁住,如果没有锁住才可以创建节点,并作为一个锁,锁住则不能创建。
Zookeeper的局限性
Zookeeper虽然优点很多,仍有局限性,比如:
- API事务能力不足,不支持客户端发起事务性的多步骤操作
- 服务器无仲裁能力,Zookeeper服务器端不能做基本的判断逻辑,必须都在客户端进行
- 回调机制受限,Zookeeper节点的Znode上面watch仅支持触发一次回调,不支持定时过期失效
- 可扩展性不足,Zookeeper集群不支持在线动态添加机器或替换机器
组内分工
组员 | 分工 |
---|---|
陈伊臻 | Znode, Watcher, ACL |
刘翔 | ZAB Protocol |
张磊 | ZAB Protocol |
萧科多 | Network Communications ,Session |