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会通知客户端。

可以监听到的七种类型变化:

  1. None:连接建立时间
  2. NodeCreated:节点创建
  3. NodeDeleted:节点删除
  4. NodeDataChanged:节点数据变化
  5. NodeChildrenChanged:子节点列表变化
  6. DataWatchRemoved:节点监听被移除
  7. ChildWatchRemoved:子节点监听被移除

Zookeeper能做什么?

Zookeeper能实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能。

假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zookeeper 获取新的配置信息应用到系统中。

简单理解就是:集群听某个目录节点的,目录节点怎么改,其他集群也怎么改。

posted @ 2022-07-28 14:43  霜鱼CC  阅读(11)  评论(0)    收藏  举报