赞
踩
最近在了解分布式,发现zookeeper是必不可少的一个工具,记录一下对zookeeper的学习过程。
zookeeper是一个分布式协调服务,从名字“动物管理员”可以看出,它实际上是分布式服务的
一个协调工具。多个服务耦合到一起去做一件事,出现问题是必不可少的,那么zookeeper就是为解
决这些非业务问题而生的,还是一个目的:让开发人员更专注业务的开发。
分布式的多个服务,有时间需要同时修改配置文件,此时zookeeper就可以做到。批量统一修改可以减少误差。
zookeeper的数据模型,与文件系统的目录很像,实际上文件系统的目录又类似于数据结构中的树。直观上如下图所示:
树是由节点组成的,zookeeper的数据一样存储在节点,名字是zNode。
1、data:此节点保存的数据。 2、acl:权限,包含了可操作人及操作人对此节点拥有的权限,权限分为以下几种: c:create,创建权限,允许在该节点下面创建节点。 w:write,修改权限,允许修改改节点的data数据。 r:read,读取权限,允许读取改节点的data数据。 d:delete,删除权限,允许删除此节点的子节点。 a:admin,管理员权限,允许对改节点进行权限重新设置。 3、stat:描述当前znode的元数据。元数据包含一下内容: 1、cZxid:创建节点的事务id。 2、mZxid:修改节点的事务id。 3、pZxid:增加和删除子节点的事务id 4、cTime:创建时间。 5、dataVersion:节点内数据的版本,数据每更新一次,数据版本会+1。 6、aclVersion:权限的版本。 7、ephemeralOwner:如果当前节点是临时节点,值是当前节点所有者的sessionId,否则为0。 8、dataLength:节点内数据的长度。 9、numChildren:节点的子节点数量。 4、child:当前节点的子节点信息。
1、持久节点:看名字可以看出,创建的数据会持久化保存,在会话结束后依旧存在。
2、持久序号节点:与持久节点不同的是创建时,会默认分配一个独一无二的序号(递增)。
3、临时节点:创建的数据只保存至内存,会话结束之后就会消失。
4、临时序号节点:与临时节点不同的是,创建时候,会默认分配给一个序号(递增)。
5、容器节点(3.5.3版本新增):当容器中没有任何子节点,该容器节点会被定期删除。(60s一次。)
6、TTL节点:可以指定节点的到期时间,到期后被删除,需要通过系统配置开启。(zookeeper.extendedTypesEnable)
由于zookeeper是基于java的,因此安装之前需要在环境上安装好java的环境,并配置好环境变量。
下载链接:https://pan.baidu.com/s/1kDz2YCPSDD5Y7GhWnQL4kg 提取码:xuyd
1、确保java环境安装好之后,下载解压文件如图:
解压成功之后直接到bin目录执行一下命令:zkServer.cmd
此时很明显看出是缺少conf/zoo.cfg文件,打开查看直接修改zoo_sample.cfg修改为zoo.cfg。
配置文件字段说明:
修改之后再次执行命令即可启动服务器如下图:
此时新开命令窗口,执行一下命令:zkCli.cmd效果如下图:
此时说明安装启动成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。