初识ZooKeeper-ZooKeeper基本数据模型

ZooKeeper基本数据模型简介

ZooKeeper基本数据模型归根结底是一个树形结构,类似于前端开发中的tree.js组件。

ZooKeeper数据模型也可以理解为linux/unix的文件目录:/usr/local/...

每一个节点都称之为znode,它可以有子节点,也可以有数据

每个节点分为临时节点和永久节点,临时节点在客户端断开后消失,人为可以进行删除,或者session超时后自动删除掉;永久节点相当于一个持久化的过程,可以人为进行删除,但是session超时后不会进行自动删除。

每个ZooKeeper节点都有各自的版本号,可以通过命令行来显示节点信息

每当节点数据发生变化时,那么该节点的版本号会进行累加(乐观锁)

删除/修改过时节点,版本号不匹配则会报错

每个ZooKeeper节点存储的数据不宜过大,几K即可

节点可以设置权限acl(权限控制列表),可以通过权限来限制用户的访问

ZooKeeper基本数据模型基本操作

客户端连接

我们进入ZooKeeper中bin文件夹下 命令启动ZooKeeper

直接命令行 打入命令 ./zkCli.sh  可以看到连接到我们的localhost 端口号2181 表示的状态已经连接

打入help可以查看我们可以输入的命令 ,使用Ctrl+C可以退出客户端连接:

ZooKeeper作用

1.master节点选举,主节点挂了以后,从节点就会接受工作,并保证这个节点是唯一的,这也就是所谓的首脑模式,从而保证我们的集群是高可用的;

2.统一配置文件管理,即只需要部署一台服务器,就可以把相同的配置文件同步更新到其他所有的服务器上,此操作在云计算中用的特别多(比如修改了redis统一配置)

3.发布与订阅,类似消息队列MQ,dubbo发布者将数据存在znode 上,订阅者会读取这个数据

4.提供分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程中的锁

5.集群管理,集群中保证数据的强一致性

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_36014509/article/details/81483909