Zookeeper随笔

安装注意事项

        单节点安装

               1、zk是解压式安装,唯一需要注意的是安装路径中不能存在空格,存在空格启动会失败。

               2、${zk_home}/conf/zoo.cfg最小配置

                         tickTime=2000    --系统时钟,单位:毫秒
                         dataDir=D:\\tech-lab\\zookeeper\\apache-zookeeper-3.5.5\\data   --数据存放位置
                         clientPort=2181      --客户端监听口号

                         initLimit=20  --表示用于在从节点和主节点之间建立初始化连接的时间上限

                         syncLimit=5 --表示允许从节点与主节点处于不同步状态的时间上限

                         

        集群安装

                1、  ${zk_home}/conf/zoo.cfg最小配置                     

                                  tickTime=2000    --系统时钟,单位:毫秒
                                  dataDir=D:\\tech-lab\\zookeeper\\apache-zookeeper-3.5.5\\data   --数据存放位置
                                  clientPort=2181      --客户端监听口号
                                  initLimit=5       ---
                                  syncLimit=2
                                  server.1=zoo1:2888:3888    ----host:port:port  主机地址:本地节点通信端口:集群节点通信端口
                                  server.2=zoo2:2888:3888
                                  server.3=zoo3:2888:3888

              2、每个节点的dataDir目录下新建myid文件,文件不带任何后缀,文件内容为节点id,譬如1,2,3等等。

              3、伪集群,即在同一台机器搭建zk集群,配置的集群列表的端口需要注意。

                          server.2=localhost:2889:3889
                          server.1=localhost:2888:3888
                          server.3=localhost:2890:3890

 

Zookeeper的部署设计

             1、跨机器需求
                      内网,网速,2*F+1机器数。F=可接受的fail机器数。机器故障独立,即机房机器的硬件或者环境导致的机器宕机。
             2、 单机需求
                      独占存储访问
                      内存不发生交换,为zk提供足够的内存。设置zk使用java的最大堆大小,避免内存切换。切换严重影响zk性能。zk脚本中,window系统使用默认jre的内存配置,Linux版本提供了${zk_home}/bin/zkEvn.sh设置最大堆大小。内存大小的设置根据项目具体使用情况的压测结果设定,设定的最大内存一般保守设置不超过系统内存的0.75。最好提供最大配比的机器,保持zk系统最优。一般jvm的配置设置单独的配置文件java.evn,在其中配置JDK路径以及堆内存的使用。

             3、在生产环境建议zookeeper机器不能少于三个节点,最好不要超过七个节点。如果节点少于三个,此时维护配置文件时,节点重启,集群就不得不暂时停用。因为zookeeper使用一致性协议,节点过多会降低整个群组的性能。

     

The Four Letter Words四字命令

             Zookeeper3.5.3以后,使用AdminServer响应四字命令,AdminServer是基于Jetty的一个web服务,访问地址:http://localhost:8080/commands。 默认情况下AdminServer是开启的,访问端口默认是8080,如果不修改配置,集群的zookeeper只有一个节点不会报8080端口绑定异常。可以通过zookeeper.admin.enableServer=false配置禁用AdminServer。

             Zookeeper的Windows版本和Linux版本的启动脚本zkServer的内容不一样,Linux版启动的功能比较全面,Window版启动的比较简单,Windows版默认是不启动四字命令的监听,四字命令监听对应的启动类为FourLetterWordMain.java。该监听可以通过Telnet或nc命令访问。

             所以Zookeeper3.5.3以后,默认情况下,Linux版会同时启动两种方式的四字监听程序。Windows版只启动AdminServer。

             关于四字命令参见官方说明文档,不同版本的zookeeper,有不同的四字命令。

             四字命令的目的是能让我们了解zookeeper的配置情况以及zookeeper运行过程中的一些关键信息,为运行中的问题提供一些帮助信息。

 

Zookeeper配置文件的配置项

             zookeeper的配置项,分为三部分,最小配置,高级配置和集群配置。zookeeper为其中的一些配置项提供了对应的系统配置参数,可以通过系统参数配置来配置。

            最小配置是运行zookeeper的最低配置。

            高级配置一般用于zookeeper的性能调优。

            集群配置只能应用于集群,单机不能配置这些选项。

 

Zookeeper的优势和局限性

 

Zookeeper集群的维护(少量但长期需要的维护)

            1、日志文件的清理,可以定义日志策略。
            2、快照文件和事务性文件的清理,zk现在支持自动清理。
            3、zk的监视,down机处理策略,自动重启,打印宕机堆栈信息。

 

由于文件损坏导致的服务不能启动

            如果集群中有机器由于数据文件损坏(加载数据文件报IOException)不能启动,检查其他节点能否正常工作,如果能则清除故障机器的数据文件(datadir/datalogdir),然后重启。

 

影响zk性能的配置项

             1、dataDir

             2、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值