安装
bash
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar xfzv zookeeper-3.4.9.tar.gz && mv zookeeper-3.4.9/conf/zoo_sample.cfg zookeeper-3.4.9/conf/zoo.cfg
vim zoo_sample.cfg zookeeper-3.4.9/conf/zoo.cfg
把dataDir修改合适的目录
使用
bash
cd zookeeper-3.4.9/bin
sudo ./zkServer.sh start/stop #启动zk服务器
sudo ./zkCli.sh #客户端连接服务器
zk的数据组织结构是树状
ls / 列出当前目录节点; get /zookeeper获取节点数据;
set /zookeeper 10 设置节点数据;
create /test 创建节点; delete /test 删除节点; deleteall /test 删除节点及子节点;
我们主要关注2个数据:第一行设置的数据,以及ephmeralOwner = 0x0 永久节点,非0临时节点
分布式中的使用
一个服务器就是一个节点,我们同样以树状结构把服务和方法以及ip,port注册进zk,使其形成这样的结构:/UserServiceRpc/Login/127.0.0.1:8001
一般是要进行zk的api编程:这里以c为例:
bash
cd zookeeper-3.4.9/src/c
./configure --prefix=/xxx
打开makefile 548行,AM_CFLAGS = -Wall -Werror 去掉-Werror
make -j4
make install
编译完得到include和lib,即可使用他们进行客户端编程。