Zookeeper
Zookeeper
Zookeeper是什么
Zookeeper是一个分布式服务框架,是Apache Hadoop的子项目。主要用于解决分布式应用中经常遇到的一些数据管理问题、数据一致性等问题,如:统一命令服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Zookeeper=文件系统+监听通知机制。
文件系统
Zookeeper维护一个类似文件系统的数据结构:每个子目录项如NameService都被称为znode(目录结点),我们能够自由的增加或删除znode,或者在znode下添加、删除子znode,唯一的不同在于znode是可以存储数据的。
最外层我们可以想像成一个大的文件夹,里面都是一些小的文件夹。
znode四种类型:
- PERSISTENT-持久化目录节点:客户端与zookeeper断开连接口,该节点依旧存在。
- PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号。
- EPHEMERAL-临时目录节点:客户端与zookeeper断开连接后,该节点被删除
- EPHEMERAL_SEQUENTIAL-临时顺序遍号目录节点:客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
监听通知机制
客户端注册监听它关心的目录节点,当目录节点发生变化时,zookeeper会通知客户端。
可以监听到的七种类型变化:
- None:连接建立时间
- NodeCreated:节点创建
- NodeDeleted:节点删除
- NodeDataChanged:节点数据变化
- NodeChildrenChanged:子节点列表变化
- DataWatchRemoved:节点监听被移除
- ChildWatchRemoved:子节点监听被移除
Zookeeper能做什么?
Zookeeper能实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能。
假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zookeeper 获取新的配置信息应用到系统中。
简单理解就是:集群听某个目录节点的,目录节点怎么改,其他集群也怎么改。

浙公网安备 33010602011771号