Zookeeper简介
zookeeper分布式管理软件。常用它做注册中心(依赖zookeeper的发布/订阅功能)、配置文件中心、分布式锁配置、集群管理等。 zookeeper一共就有两个版本。主要使用的是java语言写的。
安装
网上下载zookeeper 安装包  打开虚拟机, 上传这个安装包

1 上传压缩文件 上传到 /usr/local/tmp中
 2 解压 tar zxf apache-zookeeper-3.5.5-bin.tar.gz cp -r apache-zookeeper-3.5.5-bin …/zookeeper
 3 新建data目录 zookeeper 是一个软件,里面要存东西,所以我们要创建一个文件夹,里面就是存我们要保存的东西
进入到zookeeper中 cd /usr/local/zookeeper mkdir data
 4 修改配置文件 我们自己创建的data文件夹,zookeeper软件是咋知道的,所以需要配置,和maven仓库的配置一样 进入conf中 cd conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg 修改dataDir为data文件夹路径
 5 启动zookeeper 进入bin文件夹 cd /usr/local/zookeeper/bin ./zkServer.sh start
 通过status查看启动状态。稍微有个等待时间 ./zkServer.sh status

使用
我们可以把zookeeper当做MySQL,我们的MySQL也有cmd里面可以操作,有一个命令的客户端,所以zookeeper也有的
Zookeeper客户端常用命令
进入到./zkCli.sh命令行工具后,可以使用下面常用命令 注意: MySql数据存储数据是按照二维表的结构存储的,我们查找数据也是按照二维表的方式去查找。但是Zookeeper的底层使用的节点的方式,树结构。比如,一个苹果树,上面結满了苹果,每个苹果都有自己的绝对路径,从苹果树的根开始查找。也就说 我们在Zookeeper中存储的数据需要提供数据存储的绝对路径,查询数据时也需要提供数据的绝对路径。
以下就是zookeeper的客户端  
ls
ls [-s] [-R] /path -s 详细信息,替代老版的ls2 -R 当前目录和子目录中内容都罗列出来 例如:ls -R / 显示根目录下所有内容
 以上是刚安装zookeeper软件,里面自带的目录 自带一个zookeeper的目录 
create
create /path [data] [data] 包含内容 创建指定路径信息 例如:create /demo 创建/demo (在根路径下创建一个demo的文件夹)   也就是用以上的命令,创建了一个目录
create /node 第一次创建可以,第二次创建同一个名字的时候,就会说已经有这个节点,不让创建
create -s /node 第一次创建的时候,会自动给你一个编号,再创建同名字的,会创建,但是每一个编号不一样
记住:
一个节点里面只能创建一个URL地址
get
get [-s] /path [-s] 详细信息 查看指定路径下内容。 例如: get -s /demo

null:存放的数据
cZxid:创建时zxid(znode每次改变时递增的事务id)
ctime:创建时间戳
mZxid:最近一次更近的zxid
mtime:最近一次更新的时间戳
pZxid:子节点的zxid
cversion:子节点更新次数
dataversion:节点数据更新次数
aclVersion:节点ACL(授权信息)的更新次数
ephemeralOwner:如果该节点为ephemeral节点(临时,生命周期与session一样), ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0.
dataLength:节点数据字节数
numChildren:子节点数量
set
set /path data 设置节点内容
 也就是利用这个命令,往目录里面保存数据
delete
delete /path 删除节点
|