大家是否知道zookeeper是什么?是的,ZooKeeper是用来保证数据在集群间的事务性一致。那么大家是否又知道它的原理呢?小编跟着大家的步伐一起来了解下吧。
Zookeeper提供了什么?
提供了文件系统以及通知机制。
Zookeeper虚拟文件系统
Zookeeper维护一个类似文件系统的数据结构
每个子目录项如 NameService 都被称作为 znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
Znode有四种类型如下:
1、PERSISTENT-持久化目录节点
客户端与zookeeper断开连接后,该节点依旧存在
2、 PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点
客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号
3、EPHEMERAL-临时目录节点
客户端与zookeeper断开连接后,该节点被删除
4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
通知机制
客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。
事件的监听机制。
当我们想在ZooKeeper中建立节点、删除节点、修改节点值等时候,都会产生事件,注册了事件监听器的类,就可以获得这些事件。换句话说,只要ZooKeeper的节点变化了,那么数据肯定变化,那么注册器通过监控节点的变化就可以知道数据的变化。那么而这正是Zookeeper的无比强大之处。
以上就是今天所讲的内容,如果想要了解更多java一些知识问答,那么就请继续关注本网站吧。