zookeeper部署


  1. 软件环境

    ZooKeeper Server是一个Java语言实现的分布式协调服务框架,需要JDK 6或更高版本的支持。

  2. 集群配置

    集群的数量建议是2*n+1。因为zookeeper集群中只要有超过一半的机器是正常工作的,那么整个集群对外就是可用的,正是基于这个特性,建议是将集群的机器数量控制为奇数较为合适。

  3. 服务搭建

    1. 部署jdk环境;

    2. 设置合理的jvm参数(集群部署完成后压测);

    3. 下载最新的稳定版本zookeeper,规划部署位置(主程序、配置文件、日志文件);

    4. 参数配置,配置文件zoo.cfg的主要参数:

      tickTime=2000                        #ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。这也是ZK确认服务的心跳间隔。
      initLimit=10                             #Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。如果ZK集群的数据量确实很大了,有必要适当调大这个参数。
      syncLimit=5                          #在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。
      dataDir= /opt/zookeeper/zkdata                  #存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。
      dataLogDir= /opt/zookeeper/zkdatalog        #事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。
      clientPort=2181                              #客户端连接server的端口,默认2181。
       
      server.1=zoo1:2888:3888              #server.id中的id必须与myid文件中的id是一致的,id的范围是1~255。右边可以配置两个端口,第一个端口用于F和L之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。
      server.2=zoo2:2888:3888
      server.3=zoo3:2888:3888

      创建myid文件:每个server上执行echo "id" > /opt/zookeeper/zkdata/myid

      ZK的日志配置由log4j.properties管理

      zk的配置文件在每台服务器上都是一样的,只需要配置一份由git统一管理。

    5. 启动并检查服务状态:

      进入主程序目录执行启动命令: ./zkServer.sh start

      状态检查: ./zkServer.sh status

    6. zk日志清理策略:

      zookeeper不会主动的清除旧的快照和日志文件(从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能,在zoo.cfg中配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值