一文了解Zookeeper部署模式
在国内无论大公司,还是小公司都常用阿里的技术栈,其中最常用到的就是Dubbo,而一涉及到Dubbo,就会常用到Zookeeper,因为Dubbo推荐的注册中心就是Zookeeper,Zookeeper作为注册中心常见如下三种部署模式。
0x01:单机模式
单机模式,Zookeeper只运行在一台服务器上,比较适合开发场景,及开发环境
- 下载Zookeeper
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
- 压并复制到指定目录
tar -zxvf zookeeper-3.4.10.tar.gz mv zookeeper-3.4.10 /usr/local/zookeeper
- 修改配置文件
在conf目录下复制zoo_sample.cfg,重命名为zoo.cfg,配置如下在conf目录下复制zoo_sample.cfg,重命名为zoo.cfg,配置如下
# 发送心跳的间隔时间 tickTime=2000 # leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数 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=/data/zookeeper1/data # 日志目录 dataLogDir=/data/zookeeper1/logs # 客户端连接端口 clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
0x02:伪集群模式
伪集群模式,一台物理机上运行多个Zookeeper实例(至少3个Zookeeper实例),主要通过修改Zookeeper的端口,达到一个物理机可以运行多个Zookeeper。可以应用于测试环境。
- 安装zookeeper,方法同单机部署模式
- 复制zookeeper安装目录为zookeeper1、zookeeper2、zookeeper3
- 修改各个配置文件zoo.cfg,在文件末尾增加多个实例的服务配置
#server.NUM=IP:port1:port2 NUM表示本机为第几号服务器;IP为本机ip地址; #port1为leader与follower通信端口;port2为参与竞选leader的通信端口 #IP地址均为本地地址,多个实例的端口配置不能重复,如下: server.1=127.0.0.1:2888:38888 server.2=127.0.0.1:2889:38889 server.3=127.0.0.1:2890:38890
- 在配置dataDir指定的目录项增加myid文件,写入当前服务器实例对应的标号,即zoo.cfg配置中的NUM值。用于作为该ZooKeeper Server 的标识。
- 分别启动多个实例
0x03:集群模式
Zookeeper运行在一个物理集群上,就是一台物理机部署一个Zookeeper实例,然后多个Zookeeper(至少三台物理机每台物理机部署一个Zookeeper实例)组成集群。该模式需要大量的服务器资源,常见应用于适合生产环境,高可用必须使用该模式。
- 在多台机器上安装zookeeper,方法同单机部署安装
- 修改各自zoo.cfg文件,在文件末尾增加多个实例的服务配置
#server.NUM=IP:port1:port2 NUM表示本机为第几号服务器;IP为本机ip地址; #port1为leader与follower通信端口;port2为参与竞选leader的通信端口 #多个实例的IP分布在多个服务器上,如下: server.1=192.168.137.128:2888:38888 server.2=192.168.137.129:2888:38888 server.3=192.168.137.130:2888:38888
- 在配置dataDir指定的目录项增加myid文件,写入当前服务器实例对应的标号,即zoo.cfg配置中的NUM值,方法同伪集群模式。
- 分别启动zookeeper 实例,方法同伪集群模式。
Zookeeper常见启动、关闭命令:
启动实例:./bin/zkServer.sh start
停止实例:./bin/zkServer.sh stop
重启实例:./bin/zkServer.sh restart
查看状态:./bin/zkServer.sh status