一、zookeeper概述
Zookeeper使用的数据结构为树形结构,根节点为"/"
Zookeeper集群中的节点,根据其身份特性分为leader、follower、observer
leader负责客户端writer类型的请求;
follower负责客户端reader类型的请求,并参与leader选举;
observer是特殊的follower,可以接收客户端reader请求,但是不会参与选举,可以用来扩容系统支撑能力,提高读取速度
Zookeeper是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理相关数据,接收观察者的注册
一旦这些数据的状态发生变化,zookeeper就负责通知那些已经在zookeeper集群进行注册并关心这些状态发生变化的观察者,以便观察者执行相关操作
Zookeeper使用的是ZAB原子消息广播协议,
节点之间的一致性算法为Paxos,能够保障分布式环境中数据的一致性
分布式场景下高可用是Zookeeper的特性,可以采用第三方客户端的实现,即Curator框架
二、zookeeper安装
1、下载zookeeper压缩文件并上传文件
2、解压zookeeper压缩文件
tar -zxvf zookeeper-3.4.10.tar.gz
3、修改配置文件
进入conf文件夹下面,将zoo_sample.cfg这个文件复制为zoo.cfg,修改配置文件数据目录和日志目录
4、配置环境变量
修改/etc/profile文件,在结尾添加下面两行
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10/
export PATH=$PATH:$ZOOKEEPER_HOME/bin
tar zxvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
cd conf
mv zoo_sample.cfg zoo.cfg
cd ..
cd bin
./zkServer.sh start
5、集群环境搭建
一般情况集群选择基数个节点,这个与zookeeper竞选ledder节点算法有关
假设有个三个节点A,B,C
在A,B,C三台机器上的zoo.cfg加上信息
server.0=10.155.66.106:28888:38888
server.1=10.155.66.107:28888:38888
server.2=10.155.66.107:28888:38888
在A,B,C三台机器上数据目录创建文件
touch myid
文件内容存放server的标识
0,1,2
启动A,B,C三台服务
查看状态zkServer.sh status
三、zookeeper运行情况查询
1、启动zookeeper服务
进入bin目录执行启动命令
./zkServer.sh start
2、查看zookeeper服务状态
./zkServer.sh status
ps -ef|grep zookeeper
四、zookeeper客户命令操作
1、启动zookeeper客户端
#启动本地
./zkCli.sh
#启动远程
zkCli.sh -server localhost:2181
2、zookeeper命令操作
输入help查看所有支持的命令集合
#查看所有目录
ls /
#创建目录并赋值
create /zk zhouyanyao
#删除目录
delete /zk
#查看某个节点
get /zk
#给某个节点赋值
set /zk zhouyanyao