一、Zookeeper简介与应用场景

Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目.提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等.

Zookeeper的主要有单机、伪集群、集群三种部署方式.

二、官网下载Linux版本的Zookeeper,下载好的Zookeeper上传到Linux系统上(上传到 /opt下面,主要是放在这里备份一下)


三、创建一个安装目录(我这里想安装在 /usr/local/zookeeper下面)


四、解压

1、切换到 /opt目录下面,然后执行命令解压

// 解压文件到 /usr/local/zookeeper目录下

tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper

2、解压后的目录结构如下


五、创建配置文件

1、创建一个zookeeper的配置文件zoo.cfg,可复制conf/zoo_sample.cfg作为配置文件


2、zoo.cfg配置文件简介

# The number of milliseconds of each tick

# tickTime:客户端与服务器、服务器与服务器之间维持心跳的时间间隔,也就是每一个tickTime会发送一次心跳,单位为毫秒

#

tickTime=2000

#

# The number of ticks that the initial

# synchronization phase can take

# initLimit:集群中Leader和Follow初始化连接时最多能容忍的心跳数

# 也就是初始化过程中,如果Leader和Follow在 (10*tickTime)的时间内还没有连接上,则认为连接失败

initLimit=10

#

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

# syncLimit:同步通信实现,Leader和Follow服务器之间发送请求和接收应答最多能容忍的心跳数

# 也就是Leader和Follow如果发送的请求在 (5*tickTime)的时间没没有应答,那么就认为Leader和Follow之间连接失败

#

syncLimit=5

#

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

# dataDir:zookeeper保存日志文件的目录

#

dataDir=/tmp/zookeeper

#

# the port at which the clients will connect

# clientPort:客户端连接zookeeper服务器的端口,zookeeper会监控这个端口

#

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

# 集群信息规则(server.服务器编号=服务器的IP地址:LF通信端口:选举端口

# server.N=YYY:A:B

# N:服务器编号,每一台服务器的编号都是唯一的

# YYY:服务器的IP地址

# A:LF通信的端口,服务器与zookeeper集群中Leader交换信息的端口

# B:选举端口,集群中每一台服务器的A端口都是一样的,集群中的每一台服务器的B端口也是一样的

# 但是当采用伪集群的时候,由于IP地址都是一样的,只能是A端口和B端口不一样.