单机zookeeper伪集群

单机zookeeper伪集群

下载zookeeper

https://zookeeper.apache.org/releases.html

# 解压
tar -zxfv apache-zookeeper-3.6.1-bin.tar.gz -C /usr/local
# 重命名
mv /usr/local/apache-zookeeper-3.6.1-bin zookeeper
# 更改权限
chown -R luis. zookeeper

配置

配置说明

单机伪集群通过配置3个实例来实现。具体需要配置3个cfg(zoo1.cfg、zoo2.cfg、zoo3.cfg)
在/usr/local/zookeeper/conf下创建3个文件zoo1.cfg、zoo2.cfg、zoo3.cfg

cp zoo_sample.cfg zoo1.cfg
cp zoo_sample.cfg zoo3.cfg
cp zoo_sample.cfg zoo2.cfg

例如zoo1.cfg

# 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=/tmp/zookeeper
dataDir=/usr/local/var/run/zookeeper/zk1/data
dataLogDir=/usr/local/var/run/zookeeper/zk1/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
#
# 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
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

  1. tickTime:
    Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
    tickTime=2000
  2. initLimit:Leader-Follow初始通信时限
    集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。启动有快有慢,超过该值则认为启动失败。
    initLimit=5
  3. syncLimit:LF同步通信时限
    集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
    syncLimit=2
  4. dataDir:数据文件目录
    Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
    dataDir=/home/michael/opt/zookeeper/data
  5. clientPort:客户端连接端口
    客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
    clientPort=2181
  6. 服务器名称与地址:集群信息(服务器编号myid,服务器地址,LF通信端口,选举端口)
    这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

由于是单机上启动多个zookeeper实例,因此这个的端口需要变更一下。

三个配置文件中clientPort、dataDir、dataLogDir每个配置文件不同。其他的都一样
zoo1.cfg

dataDir=/usr/local/var/run/zookeeper/zk1/data
dataLogDir=/usr/local/var/run/zookeeper/zk1/logs
clientPort=2181

zoo2.cfg

dataDir=/usr/local/var/run/zookeeper/zk2/data
dataLogDir=/usr/local/var/run/zookeeper/zk2/logs
clientPort=2182

zoo3.cfg

dataDir=/usr/local/var/run/zookeeper/zk3/data
dataLogDir=/usr/local/var/run/zookeeper/zk3/logs
clientPort=2183

分别创建上述配置文件的目录,并在/usr/local/var/run/zookeeper/zkX/data/中创建文件myid

cat/usr/local/var/run/zookeeper/zk1/data/myid
1
cat/usr/local/var/run/zookeeper/zk2/data/myid
2
cat/usr/local/var/run/zookeeper/zk3/data/myid
3

这里的myid对应上面zooX.cfg中的
server.1=localhost:2887:3887

启动

#!/bin/bash
# 启动3个zookeeper服务
zkServer.sh start /usr/local/zookeeper/conf/zoo1.cfg
zkServer.sh start /usr/local/zookeeper/conf/zoo2.cfg
zkServer.sh start /usr/local/zookeeper/conf/zoo3.cfg

# 查看每个zookeeper对应的角色
zkServer.sh status /usr/local/zookeeper/conf/zoo1.cfg
zkServer.sh status /usr/local/zookeeper/conf/zoo2.cfg
zkServer.sh status /usr/local/zookeeper/conf/zoo3.cfg

# 停止zookeeper服务
# zkServer.sh stop /usr/local/etc/zookeeper/zoo1.cfg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值