目录与配置文件

Zookeeper主要目录结构

  • bin: 主要的一些运行命令。

  • conf:存放配置文件,其中我们运行zookeeper之前需要修改zk.cfg。

  • contrb:附加的一些功能。

  • dist-maven:mvn编译后的目录,包含写jar包及pom文件

  • docs:文档

  • lib:需要依赖的jar包

  • recipes:案例demo代码

  • src:源码

支持c和java的客户端

Zookeeper配置文件

zoo.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=/home/myuser/zooA/data 

# the port at which the clients will connect 
clientPort=2181 

# ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating 'myid' file in the dataDir # use hostname instead of IP address for convenient maintenance
server.1=127.0.0.1:2888:3888 
server.2=127.0.0.1:2988:3988  
server.3=127.0.0.1:2088:3088 

# 
# 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  <br>
#autopurge.purgeInterval=1 
dataLogDir=/home/myuser/zooA/log
  • tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。

  • initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值。(用于集群,允许从节点连接并同步到master节点的初始化连接时间,以tickTime的倍数来表示)。

  • clientPort:服务的监听端口(连接服务器的端口,默认2181)。

  • dataDir:必须配置,用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)

  • dataLogDir:日志目录,用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争,如果不配做会和dataDir公用。

  • syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。(用于集群,master主节点与从节点之间发送消息,请求和应答时间长度,以tickTime的倍数来表示。心跳机制)

  • server.A=B:C:D:

    • A是一个数字,表示这个是第几号服务器,

    • B是这个服务器的ip地址

    • C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口

    • D是在leader挂掉时专门用来进行选举leader所用

dataDir 和 dataLogDir 在zookeeper当前目录建立相应的目录配置即可。

Last updated