work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Zookeeper基本数据模型

Posted on 2018-10-13 16:33  work hard work smart  阅读(201)  评论(0编辑  收藏  举报

一、Zookeeper基本数据模型

是一个树形结构,类似于前端开发中的tree.js组件

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

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

每个节点分为临时节点和永久节点,临时节点在客户端断开后消失

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

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

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

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

节点可以设置权限acl,可以通过权限来限制用户的访问。

 

二、Zookeeper数据模型基本操作

1、客户端连接

进入Zookeeper安装目录的bin文件夹下,执行启动客户端命令

./zkCli.sh

 

2、查看znode结构

ls命令

 

3、关闭客户端连接

 Ctrl+C

 

三、Zookeeper的作用体现

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

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

3、发布与订阅,类似于消息队列MQ(amq,rmq...), dubbo发布者把数据存在znode上,订阅者会读取这个数据

4、分布式锁,分布式环境中不同进程直接争夺资源,类似于多线程中的锁

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

 

 当修改其中一个节点的值时,其它两个节点的值会同步过去。