zookeeper
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
Zookeeper 特点
(1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
(2)Zookeepe集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
(3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
(4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行,即先进先出。
(5)数据更新原子性,一次数据更新要么成功,要么失败。
(6)实时性,在一定时间范围内,Client能读到最新数据。
zookeeper集群部署
部署之前需要准备三台装有mysql的虚拟机,并使用systemctl stop firewalld setenforce 0关闭虚拟机的防火墙以及自带的安全保护
首先需要在三台虚拟机上安装JDK
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装完毕后用Java -version 查看
安装zookeeper(三台都做)
官方下载地址:https://archive.apache.org/dist/zookeeper/
进入下载的目录并且解压
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
修改配置文件,并对配置文件进行备份
cp zoo_sample.cfg zoo.cfg
修改内容:
ticktime指通信心跳时间,zookeeper服务器与客户端心跳时间
initLimit指Leader和Follower初始连接能容忍的最多心跳数
syncLimit指Leader和Follower之间同步通信的超时时间
dataDir修改指定保存zookeeper中数据的目录
dataLogDir添加指定存放日志的目录,目录需要单独创建
clientPort指客户端要连接的端口号
server1~3指集群的信息
修改完配置之后将配置好的那台的配置文件复制到另外两台虚拟机上
scp zoo.cfg的路径 要复制到虚拟机的IP:要复制到的位置
复制完之后在每台虚拟机上创建数据目录和日志目录
mkdir /usr/local/zookeeper-3.5.7/data
mkdir /usr/local/zookeeper-3.5.7/logs
创建完毕后在之前配置文件中dataDir指定的目录下创建myid的文件(三个虚拟机不能一样)
echo 1 > /usr/local/zookeeper-3.5.7/data/myid
echo 2 > /usr/local/zookeeper-3.5.7/data/myid
echo 3 > /usr/local/zookeeper-3.5.7/data/myid
设置完各自的id号配置zookeeper的启动脚本
脚本配置完成后,设计开机自启
chmod +x /etc/init.d/zookeeper
chkconfig --add zookeeper
设置完毕后分别启动zookeeper
service zookeeper start
查看状态
service zookeeper status