Zookeeper 分布式协调服务 基于zab协议(原子消息广播协议)
zk的数据结构为树形数据结构,应用场景有:配置管理 集群管理 发布订阅 数据库切换 分布式日志 分布式锁、队列
角色组成:三个角色 leader follower observer。 后两种又统称learner 。
observer:特殊的follower 接收读请求 不参与选举 与leader同步数据 扩容支持能力
一、环境准备
1、准备奇数个linux主机 我用到了三个虚拟机系统 ip地址分别为192.168.194.128、192.168.194.129 、192.168.194.130
并安装好java 配置好环境变量
2、下载zookeeper 去官网下个压缩包上传到每台机器上 我放到了/software目录下
3、解压zookeeper tar -zxvf zookeeper-3.5.4-beta.tar.gz -C /usr/local
配置好zk的环境变量 和Java类似,将解压后的目录配置为ZOOKEEPER_HOME 并在path下增加ZOOKEEPER_HOME/bin 目录 方便我们使用zk命令
二、配置修改
1、将每一台机器的zk自带的配置文件改个名
zoo_sample.cfg改为zoo.cfg :mv zoo_sample.cfg zoo.cfg 这个zoo.cfg就算要使用的配置文件了
2、修改每一台机器的zoo.cfg
修改dataDir的目录 可根据个人需求修改
增加如下内容(根据ip不同修改)
3、建立好如上配置文件指定的dataDir的目录,并在目录下创建一个myid文件,文件内容根据zoo.cfg中配置的server.*来配置。
比如192.168.194.128中,myid文件的内容为 0 、129的myid为1、130的myid为2
三、启动集群
1、由于配置了环境变量 直接执行命令 zkServer.sh start 启动集群
然后可以通过zkServer.sh status来查看集群状态 当前机器角色等信息
还可以通过ZooInspector工具连接集群查看zk中的节点信息
2、直接执行zkCli.sh 即可连接集群进行操作