Zookeeper-入门

前提

  Zookeeper包含多个组件,有的组件支持多平台,有的组件只支持个别平台

   Zookeeper需要运行在java虚拟机上,需要安装JDK 7及以上

下载

  Stable release

单服务器

  配置文件

# Zookeeper的时间单位是以毫秒为单位的,该属性用来做心跳,最小的会话超时将是tickTime的两倍
tickTime=2000
# CS通信时限,tickTime的倍数
# 参数设定了允许所有跟随者与领导者进行连接并同步的时间,如果在设定的时间段内,半数以上的跟随者未能完成同步,领导者便会宣布放弃领导地位,进行另一次的领导选举
# 如果zk集群环境数量确实很大,同步数据的时间会变长,因此这种情况下可以适当调大该参数。默认为10
initLimit=10
# FL同步时限,tickTime的倍数
# 参数设定了允许一个跟随者与一个领导者进行同步的时间,如果在设定的时间段内,跟随者未完成同步,它将会被集群丢弃。所有关联到这个跟随者的客户端将连接到另外一个跟随着
syncLimit=5
# 存储内存数据库快照的位置,以及数据库更新的事务日志(除非另外指定)
dataDir=/var/lib/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

  启动

bin/zkServer.sh start  

维护Zookeeper的存储

  对于长时间运行的生产环境,Zookeeper的存储必须有外部管理(dataDir、logs)

连接Zookeeper

   http://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_ConnectingToZooKeeper

Zookeeper集群化 

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888

  server.X列出构成ZooKeeper服务的服务器,当服务器启动时,它通过在数据目录中查找文件myid来知道它是集群中的哪个服务器,该文件包含服务器号,用ASCII表示

  " 2888" and "3888":“2888”端口,节点连接其他节点将用到,该连接很有必要,这样才能保证各个节点之间的通讯,如协商更新操作的顺序,ZooKeeper服务器使用此端口将follower连接到leader,当新的leader出现时,follower使用这个端口打开到leader的TCP连接;"3888"端口,由于默认的leader选举也使用TCP,我们目前需要另一个端口进行leader选举,该端口将用到

进一步提升性能的操作

  要获得较低的更新延迟,有一个专门的事务日志目录是很重要的。默认情况下,事务日志与数据快照和myid文件放在同一个目录中。dataLogDir参数表示事务日志存储的目录

  

原文地址:https://www.cnblogs.com/BINGJJFLY/p/12050573.html