zoukankan      html  css  js  c++  java
  • zookeeper在生产环境中的配置(zookeeper3.6)

    一,zookeeper中日志的配置 

    1,快照文件snapshot的目录:

    dataDir=/data/zookeeper/data

    存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里

    所以我们建议指定dataLogDir

    2,事务日志的目录

    dataLogDir=/data/zookeeper/datalogs

    事务日志输出目录,不建议和快照文件写在一个目录下

    3,日志清理

    ZooKeeper 默认不会自动清理 tx log,总有一天你会遇到磁盘空间耗尽。

    可以开启自动清理机制

    autopurge.snapRetainCount=300
    autopurge.purgeInterval=72

    #autopurge.purgeInterval=1

    自动清理事务日志和快照文件的功能

    这个参数是清理频率,单位是小时

    默认值是0,表示不开启自动清理功能

    #autopurge.snapRetainCount=3

    自动清理事务日志和快照文件:保留的文件数量,默认值是保留3个

    4,日志的手动清理命令

    如果zookeeper集群访问量较高,清理会影响性能,可以手动清理

    手动清理文件的例子:

    #-n 3 表示保留3个文件

    [root@zk1 bin]# /usr/local/soft/apache-zookeeper-3.6.0-bin/bin/zkCleanup.sh -n 3

    也可以放到crond中按时间计划执行

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

    说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,zookeeper中客户端相关配置

    1,客户端连接 Zookeeper 服务器的端口

    clientPort=2181

    端口端和zookeeper连接时,zookeeper使用的端口,防火墙要放开此端口供客户端访问

    2,客户端的并发连接数限制 

    maxClientCnxns=300

    官方说明:

    maxClientCnxns : (No Java system property) Limits the number of concurrent connections (at the socket level) that a single client,
    identified by IP address, may
    make to a single member of the ZooKeeper ensemble. This is used to prevent certain classes of DoS attacks, including file descriptor exhaustion. The default is 60. Setting this to 0 entirely removes the limit on concurrent connections

    对一个客户端的连接数限制,默认值是60

    将它设置为0表示取消对并发连接的限制

    这个值过低会在日志中出现:too many connections from host - max is 60 

    可以视实际连接的情况进行调整

    3,关闭启动内置的管理器

    admin.enableServer=false

    避免启动内置的管理器,也避免占用8080端口

    三,zookeeper集群的配置

    1,tickTime

    tickTime=2000

    Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

    tickTime以毫秒为单位

    默认值:2000

    保持默认值即可,无需修改

    2,initLimit:LF初始通信时限

    initLimit=10

    集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)

    表示允许 follower连接 并同步到  leader 的初始化连接时间,它以 tickTime 的倍数来表示。

    当超过设置倍数的 tickTime 时间,则连接失败

    在设定的initLimit时间长度内,如果半数以上的跟随者不能完成同步,领导者便会放弃领导地位,进行另一次的领导选举。

    如果zk集群环境数量很大则同步数据的时间会变长,这种情况下可以适当调大该参数。

    默认为10

    3,syncLimit:LF同步通信时限

    syncLimit=5

    集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)

    表示 leader 与 follower 之间发送消息,请求 和 应答 时间长度。

    如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被集群丢弃

    默认值是5

    4,cluster成员列表

    #cluster
    server.1=172.18.1.1:2888:3888
    server.2=172.18.1.2:2888:3888
    server.3=172.18.1.3:2888:3888

    server.A = B:C:D

    A:zookeeper服务器的序号,即第几号服务器.

          注意这个序号要与zookeeper的myid保持一致

    B:服务器的 IP 地址

    C:服务器跟随者follower与集群中的 Leader 服务器交换信息的端口

    D:如果集群中的 Leader 服务器宕机,需要一个端口通信重新进行选举,选出一个新的 Leader。

         这个端口就是用来做leader选举的端口

    四,为zookeeper的运行配置JVM参数

    vi zkEnv.sh

    修改:SERVER_JVMFLAGS一行为:

    export SERVER_JVMFLAGS="-Xmx2048m -Xms2048m"

    说明:这两个参数的作用,

    Xmx  :程序运行期间最大可占用的内存大小,

              如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出  OutOfMemory异常

    Xms  : 程序启动时占用内存大小

                此值可以设置与-Xmx相同,

                以避免每次垃圾回收完成后JVM重新分配内存

    应设置为多少?

    Xmx     默认是物理内存的1/4,

                最大建议不超过物理内存的3/4

             所以如果没有其他应用同时运行的话,

            可以设置为物理内存的1/2再观察调整

    五,用jmx监控集群:

    1,在zookeeper的conf目录下新建java.env

    [root@zk1 conf]# vi java.env 

    内容:

    JMXHOSTNAME="172.18.1.1"
    JMXPORT=8899

    说明:JMXHOSTNAME的值是当前服务器的ip

    2,修改zkServer.sh

    echo "ZooKeeper remote JMX log4j set to $JMXLOG4J" >&2

    下面的

    ZOOMAIN="-Dcom.sun.management.jmxremote

    jmxrmote后面添加:

     -Djava.rmi.server.hostname=$JMXHOSTNAME 

    3,添加完成后,重启服务:

    [root@zk1 conf]# systemctl stop zookeeper
    [root@zk1 conf]# systemctl start zookeeper

    4,启动jconsole,

       在远程进程处输入:

    172.18.1.1:8899

      (说明:这里输入的是远程进程的ip地址和端口)

       然后点连接

       进入后:

       mbean->org.apache.ZooKeeperService

      可以看到下面的服务:

      例子如图:

    六,查看zookeeper版本

    [root@zk1 ~]# echo stat|nc 127.0.0.1 2181
    Zookeeper version: 3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
  • 相关阅读:
    作业四 四则运算
    作业三
    作业二(3)
    作业二(2)
    作业二(1)
    作业一
    作业九
    每周更新学习进度表--第十一周
    每周更新学习进度表--第十周
    每周更新学习进度表--第九周
  • 原文地址:https://www.cnblogs.com/architectforest/p/12766813.html
Copyright © 2011-2022 走看看