ZooKeeper 为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。
一、安装配置
1、下载
在官网下载zookeeper:http://mirror.bit.edu.cn/apache/zookeeper/,并复制到/opt/software目录下
2、解压
sudo tar -zxvf zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
3、编辑配置文件
进入zookeeper-3.4.10/conf下新建zoo.cfg文件,内容如下:
tickTime=2000 ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/home/qxy/zookeeper/data ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/home/qxy/zookeeper/log ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181 ##服务器对外服务端口,一般设置为2181
initLimit=5 ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2 ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍
4、运行
执行./bin/zkServer.sh start命令,运行ZooKeeper Server进程,得到如图所示结果,表示后台运行ZooKeeper Server进程成功
image.png
二、集群模式
一个 ZooKeeper 集群通常由一组机器组成,一般 3 台以上就可以组成一个可用的 ZooKeeper 集群了。
组成 ZooKeeper 集群的每台机器都会在内存中维护当前的服务器状态,并且每台机器之间都会互相保持通信。
只要集群中存在超过一半的机器能够正常工作,那么整个集群就能够正常对外服务。
ZooKeeper 的客户端程序会选择和集群中的任意一台服务器创建一个 TCP 连接,而且一旦客户端和服务器断开连接,客户端就会自动连接到集群中的其他服务器。
1、配置 zoo.cfg
tickTime=2000
dataDir=/home/qxy/zookeeper/data
dataLogDir=/home/qxy/zookeeper/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
集群模式多了 server.id=host:port1:port2 的配置。
其中,id 被称为 Server ID,用来标识该机器在集群中的机器序号(在每台机器的 dataDir 目录下创建 myid 文件,文件内容即为该机器对应的 Server ID 数字)。host 为机器 IP,port1 用于指定 Follower 服务器与 Leader 服务器进行通信和数据同步的端口,port2 用于进行 Leader 选举过程中的投票通信。
2、 创建 myid 文件
在 dataDir 目录下创建名为 myid 的文件,在文件第一行写上对应的 Server ID。
3、按照相同步骤,为其他机器配置 zoo.cfg 和 myid文件
4、启动
三、伪集群模式
这是一种特殊的集群模式,即集群的所有服务器都部署在一台机器上。当你手头上有一台比较好的机器,如果作为单机模式进行部署,就会浪费资源,这种情况下,ZooKeeper允许你在一台机器上通过启动不同的端口来启动多个 ZooKeeper 服务实例,以此来以集群的特性来对外服务。
这种模式下,只需要把 zoo.cfg 做如下修改:
tickTime=2000
dataDir=/home/qxy/zookeeper/data
dataLogDir=/home/qxy/zookeeper/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=IP1:2888:3888
server.2=IP1:2889:3889
server.3=IP1:2890:3890
网友评论