Zookeeper 有三种部署模式分别是单机模式、伪集群模式、集群模式。
这三种模式在不同的场景下使用:
- 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 Zookeeper 各种基础操作及特性。
- 伪集群部署:在单台机器上部署集群,方便在本地验证集群模式下的各种功能。
- 集群部署:一般在生产环境使用,具备一致性、分区容错性。
安装Zookeeper
从 Apache 官网下载一个 Zookeeper 稳定版本,本次采用的是 apache-zookeeper-3.6.1。
https://zookeeper.apache.org/releases.html
解压到你想安装的目录即可
注意 Zookeeper 要求 Java 运行环境,并且需要 JDK 版本 1.6 以上。
单机模式
安装好了,其实单机模式的部署任务的一大半就差不多完成了,剩下的就是需要自己创建一个配置文件。
默认配置文件路径为 apache-zookeeper-3.6.1-bin/conf/ 目录下,文件名为 zoo.cfg。我们进入 conf 目录下可以看到一个 zoo_sample.cfg 文件,可供参考。在 conf 目录下我们复制 zoo_sample.cfg 文件重命名为 zoo.cfg。
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
我们需要修改的配置的是 dataDir 路径值。修改好了单机模式下的 Zookeeper 就安装好了。
dataDir=xxxx/server1/data
dataLogDir=xxxx/server1/logdata
我们再看一些这个文件里其他的属性值:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=xxxxxx
dataLogDir=xxxxxx
# the port at which the clients will connect
clientPort=2181
- tickTime : 服务器与客户端之间交互的基本时间单元。
- initLimit : 此配置表示允许 follower 连接并同步到 leader 的初始化时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。
- syncLimit : leader 服务器与 follower 服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认 follower 服务器与 leader 服务器之间断开链接。
- dataDir : 保存 Zookeeper 数据路径。
- dataLogDir : 保存 Zookeeper 日志路径,当此配置不存在时默认路径与 dataDir 一致。
- clientPort : 客户端访问 Zookeeper 时经过服务器端时的端口号,默认配置为 2181。
其中 2,3 的内容是在集群模式下使用的。
伪集群模式
伪集群模式其实就是在单台机器上运行多个 Zookeeper 实例, 在之前的属性值中我们看到了 clientPort 参数用来设置客户端连接 Zookeeper 服务器的端口。例如:./zkCli.sh -server [ip]:[port] 命令中,IP 指的是组成 Zookeeper 服务器的 IP 地址,Port为组成 Zookeeper 服务器之间的通信端口。由于伪集群模式中,我们使用的是同一台服务器所以我们必须要保证多个 Zookeeper 实例的配置文件的 Client 端口不能冲突。
作为集群,我们最少要有三个实例。首先将 Zookeeper 压缩包解压