ZooKeeper综述

2021SC@SDUSC

Zookeeper是什么

Zookeeper 是一个分布式的,开源的分布式应用程序协调服务
可以实现配置管理,名字服务,提供分布式同步以及集群管理等功能。
事实上,Zookeeper本质是一个分布式小文件存储系统

Zookeeper的特性

1.顺序一致性

从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中;

2.原子性

所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况;

3.单一视图

所有客户端看到的服务端数据模型都是一致的;

4.可靠性

所有客户端看到的服务端数据模型都是一致的;

5.实时性

一旦一个事务被成功应用后,Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。

6.等待无关

慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。

Zookeeper的应用场景

配置管理

当一个系统有极多个节点需要运行时,如果要对所有节点的某项设置更改,如果逐个修改效率极低且容易出错, Zookeeper可以处理这种问题,将配置信息保存在Zookeeper中,Zookeeper的watcher机制可以监视配置信息的状态,当配置信息发生变化时,每台机器都会收到Zookeeper的通知并更新配置信息。

命名服务

创建节点后,节点路径是唯一的,可以作为全局名称使用。

集群管理

每个加入集群的机器都会创建自己的节点,监控父节点的用户会收到通知并处理,离开时删除节点同理。

分布式锁

集群中每个节点的数据都一样,每个用户创建节点后作为锁,其他用户创建节点时可以检测该节点是否锁住,如果没有锁住才可以创建节点,并作为一个锁,锁住则不能创建。

Zookeeper的局限性

Zookeeper虽然优点很多,仍有局限性,比如:

  1. API事务能力不足,不支持客户端发起事务性的多步骤操作
  2. 服务器无仲裁能力,Zookeeper服务器端不能做基本的判断逻辑,必须都在客户端进行
  3. 回调机制受限,Zookeeper节点的Znode上面watch仅支持触发一次回调,不支持定时过期失效
  4. 可扩展性不足,Zookeeper集群不支持在线动态添加机器或替换机器

组内分工

组员 分工
陈伊臻 Znode, Watcher, ACL
刘翔 ZAB Protocol
张磊 ZAB Protocol
萧科多 Network Communications ,Session

猜你喜欢

转载自blog.csdn.net/azzin/article/details/120535253