ZooKeeper集群搭建

一. zookeeper官网 http://zookeeper.apache.org/releases.html

下载稳定版本v3.6.3 :https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
介绍:
ZooKeeper 集群中的所有机器通过一个 Leader 选举过程来选定一台称为 “Leader” 的机器,Leader 既可以为客户端提供写服务又能提供读服务。除了 Leader 外,Follower 和 Observer 都只能提供读服务。Follower 和 Observer 唯一的区别在于 Observer 机器不参与 Leader 的选举过程,也不参与写操作的“过半写成功”策略,因此 Observer 机器可以在不影响写性能的情况下提升集群的读性能。

二. 安装步骤:

示例是在window10环境中,模拟安装zookeeper集群;

  1. 解压下载包到磁盘任意目录(最好不包含中文);

  2. copy三份解压包, 分别定义为zookeeper01, zookeeper02, zookeeper03;

  3. 将zookeeper01[02|03]\conf\zoo_simple.cfg 重命名为zoo.cfg;

  4. 修改zoo.cfg文件, 配置dataDir, dataLogDir, service.1, server.2, server.3

# The number of milliseconds of each tick
# Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
#  集群中的follower跟随者服务器与leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
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=F:\\opensource\\zookeeper01\\data
dataLogDir=F:\\opensource\\zookeeper01\\logs
# the port at which the clients will connect

# 监听客户端连接的端口
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#解决zookeeper启动时的异常
admin.serverPort=8000
#
# 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

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

#zookeeper集群配置
server.1=127.0.0.1:2281:3281
server.2=127.0.0.1:2381:3381
server.3=127.0.0.1:2481:3581

# server参数说明:
# server.A=B:C:D配置项
# A:这是一个数字,表示这是第几号服务器
# B:A服务器的IP地址
# C:通讯端口,即A服务器与集群中的 Leader 服务器交换信息的端口
# D:选举通讯端口,表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

  1. 三个zoo.cfg文件依次安装上面内容修改,注意clientPort不能一样(独立服务器除外);
  2. 在zoo.cfg文件中dataDir目录下创建myid文件,文件内容分别为1,2,3;
  3. 依次启动zookeeper01\bin\zkServer.cmd, zookeeper02\bin\zkServer.cmd, zookeeper03\bin\zkServer.cmd;

你可能感兴趣的:(ZooKeeper集群搭建)