zookeeper原理是什么?

2020-04-27 14:58:46 java常见问答 7134

大家是否知道zookeeper是什么?是的,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一些知识问答,那么就请继续关注本网站吧。