• zookeeper单机版安装


    1.解压zookeeper安装包(本人重命名为zookeeper,并移动到/usr/local路径下),此处只有解压命令

      tar -zxvf zookeeper-3.4.5.tar.gz

    2.进入到zookeeper文件夹下,并创建data和logs文件夹(一般解压后都有data文件夹)

      [root@localhost zookeeper]# cd /usr/local/zookeeper/

      [root@localhost zookeeper]# mkdir logs

    3.在conf目录下修改zoo.cfg文件(如果没有此文件,则自己新建该文件),修改为如下内容:

      

    最低配置

    参数名
    默认
    描述
    clientPort
     
    服务的监听端口
    dataDir
     
    用于存放内存数据快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
    tickTime
    2000
    Zookeeper的时间单元。Zookeeper中所有时间都是以这个时间单元的整数倍去配置的。例如,session的最小超时时间是2*tickTime。(单位:毫秒)
    dataLogDir
     
    事务日志写入该配置指定的目录,而不是“ dataDir ”所指定的目录。这将允许使用一个专用的日志设备并且帮助我们避免日志和快照之间的竞争
    globalOutstandingLimit
    1,000
    最大请求堆积数。默认是1000。Zookeeper运行过程中,尽管Server没有空闲来处理更多的客户端请求了,但是还是允许客户端将请求提交到服务器上来,以提高吞吐性能。当然,为了防止Server内存溢出,这个请求堆积数还是需要限制下的。 
    preAllocSize
    64M
    预先开辟磁盘空间,用于后续写入事务日志。默认是64M,每个事务日志大小就是64M。如果ZK的快照频率较大的话,建议适当减小这个参数。
    snapCount
    100,000
    每进行snapCount次事务日志输出后,触发一次快照, 此时,Zookeeper会生成一个snapshot.*文件,同时创建一个新的事务日志文件log.*。默认是100,000.
    traceFile
     
    用于记录所有请求的log,一般调试过程中可以使用,但是生产环境不建议使用,会严重影响性能。
    maxClientCnxns
     
    最大并发客户端数,用于防止DOS的,默认值是10,设置为0是不加限制
    clientPortAddress / maxSessionTimeout
     
    对于多网卡的机器,可以为每个IP指定不同的监听端口。默认情况是所有IP都监听 clientPort 指定的端口
    minSessionTimeout
     
    Session超时时间限制,如果客户端设置的超时时间不在这个范围,那么会被强制设置为最大或最小时间。默认的Session超时时间是在2 *  tickTime ~ 20 * tickTime 这个范围 
    fsync.warningthresholdms
    1000
    事务日志输出时,如果调用fsync方法超过指定的超时时间,那么会在日志中输出警告信息。默认是1000ms。
    autopurge.snapRetainCount
     
    参数指定了需要保留的事务日志和快照文件的数目。默认是保留3个。和autopurge.purgeInterval搭配使用
    autopurge.purgeInterval
     

    在3.4.0及之后版本,Zookeeper提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个1或更大的整数,默认是0,表示不开启自动清理功能

    syncEnabled
      Observer写入日志和生成快照,这样可以减少Observer的恢复时间。默认为true。


    集群选项

    参数名
    默认
    描述
    electionAlg
     
    之前的版本中, 这个参数配置是允许我们选择leader选举算法,但是由于在以后的版本中,只有“FastLeaderElection ”算法可用,所以这个参数目前看来没有用了。
    initLimit
    10

    Observer和Follower启动时,从Leader同步最新数据时,Leader允许initLimit * tickTime的时间内完成。如果同步的数据量很大,可以相应的把这个值设置的大一些。

    leaderServes
    yes 默 认情况下,Leader是会接受客户端连接,并提供正常的读写服务。但是,如果你想让Leader专注于集群中机器的协调,那么可以将这个参数设置为 no,这样一来,会大大提高写操作的性能。一般机器数比较多的情况下可以设置为no,让Leader不接受客户端的连接。默认为yes
    server.x=[hostname]:nnnnn[:nnnnn]
     
    “x”是一个数字,与每个服务器的myid文件中的id是一样的。hostname是服务器的hostname,右边配置两个端口,第一个端口用于Follower和Leader之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。  
    syncLimit
     
    表示Follower和Observer与Leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。
    group.x=nnnnn[:nnnnn]
     
    “x”是一个数字,与每个服务器的myid文件中的id是一样的。对机器分组,后面的参数是myid文件中的ID
    weight.x=nnnnn
     
    “x”是一个数字,与每个服务器的myid文件中的id是一样的。机器的权重设置,后面的参数是权重值
    cnxTimeout
    5s
     选举过程中打开一次连接的超时时间,默认是5s
    standaloneEnabled
     
    当设置为false时,服务器在复制模式下启动

    4.进入bin目录,启动、停止、重启分和查看当前节点状态

      [root@localhost bin]# ./zkServer.sh start

      [root@localhost bin]# ./zkServer.sh stop

      [root@localhost bin]# ./zkServer.sh restart

      [root@localhost bin]# ./zkServer.sh status

  • 相关阅读:
    oauth2的简单介绍以及应用
    springboot查询数据库,js实现二级联动效果
    PHP的简单了解
    JavaScript基础13——面向对象
    JavaScript基础12——运动
    JavaScript基础10——正则
    JavaScript基础09——事件驱动
    JavaScript基础08——DOM
    JavaScript基础07——BOM
    JavaScript基础06——Math对象和日期对象
  • 原文地址:https://www.cnblogs.com/ITMan-blogs/p/9061660.html
Copyright © 2020-2023  润新知