Zookper是一个开源的分布式的,为分布式框架提供协调服务的apache项目
工作机制:
Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应
特点:
1)zookeeper:一个领导者,多个跟随者组成的集群
2)集群中只要有半数以上的节点存货,集群就能正常服务,所以zookeeper适合安装奇数太服务器
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
4)顺序请求顺序执行,来自同一个Client的更新请求按照其发送的顺序依次进行
5)数据更新原子性,一次数据更新要么成功,要么失败
6)实时性,在一定时间范围内,client能读取到最新的数据
统一配置管理
1)分布式环境下,配置文件同步非常常见
(1)一般要求一个集群中,所有节点的配置信息是一致的,比如kafka集群
(2)对配置文件修改后,希望能够快速同步到各个节点上
2)配置管理可由zookeeper实现
(1)可将配置信息写入zookeeper上的一个Znode
(2)各个客户端服务器监听这个Znode
(3)一旦Znode忠得数据被修改, zookeeper将通知各个客户端服务器
下载:
官网地址:https://zookeeper.apache.org/
温馨提示:不要选择最新版,选一个稳定版本吧,可以在这选择:https://archive.apache.org/dist/zookeeper/
安装
1.将下载好的文件放在linux目录下,自己选择目录
2.解压
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
解压后文件目录:
如果觉得解压后的名字比较长,可以改个名字
mv apache-zookeeper-3.5.7-bin apache-zookeeper-3.5.7
配置:
我们在conf/目录下找到配置文件zoo_sample.cfg,当然这个文件时样例,我们需要将它改个名
mv zoo_sample.cfg zoo.cfg
改完之后打开这个文件
我们看到有用的参数就四个,此处需要修改的就是改数据存储的位置,不要放在临时目录下
我这边实在安装目录下建了一个zkData目录存储数据
配置完成之后,我们来启动下服务
启动zookeeper
./zkServer.sh start
执行命令后可以查看一下进程
jps
查看启动状态
./zkServer.sh status
启动客户端
./zkCli.sh
这里要记住,客户端启动不用加start
启动完,直接回车,然后输入ls / 就可以看到效果
退出客户端
quit
停止zookeeper服务端
./zkServer.sh stop
配置解读: