• Zookeeper集群部署


    在生产环境中,ZooKeeper应该在多台服务器上运行集群模式,建议服务器最低的数量是3个,在集群模式中,ZooKeeper实例以leader/follower角色运行

    主机 版本
    192.168.48.128 apache-zookeeper-3.5.5-bin.tar.gz 
    192.168.48.129  
    192.148.48.130  

    运行zookeeper需要实现部署jdk, 点我查看部署jdk

    安装zookeeper

    mkdir /opt/service
    tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /opt/service/
    ln -s apache-zookeeper-3.5.5-bin zookeeper
    
    #zoo,cfg是配置文件
    cd /opt/service/zookeeper/conf/
    cp zoo_sample.cfg zoo.cfg

    创建数据日志目录

    mkdir -p /data/zk/{data,datalog}
    mkdir -p /log/zk

     编辑配置文件/opt/service/zookeeper/conf/zoo.cfg

    tickTime=2000   #单位是毫秒,默认是2000毫秒。Tick是zookeeper用于确定心跳和会话的超时基本时间单位,降低tickTime可以更快的超时,但会增加网络开销
    initLimit=10    # follower连接leader超时配置
    syncLimit=5     # follower与leader同步超时配置,单位是 tick的数量
    dataDir=/data/zk/data    #这个是存储zookeeper内存目录的快照,如果dataLogDir没有配置,数据库更新的事物日志也将存储在此目录中,myid文件也是存储在此目录中,如果事物日志存储在其他位置,那么这个目录的性能不敏感
    dataLogDir=/data/zk/datalog  #存储事务日志目录
    clientPort=2181
    server.1=192.168.48.128:2888:3888
    server.2=192.168.48.129:2888:3888
    server.3=192.168.48.130:2888:3888
    
    #2888端口, 这个端口只有leader会开启,主要用于follower打开一个TCP去连接leader的2888端口,确定法定人数
    #3888端口, 这个端口所有角色都会开启,用于leader选举,

    数据目录写入id

    #192.168.48.128
    echo "1" >/data/zk/data/myid
    
    #192.168.48.129
    echo "2" >/data/zk/data/myid
    
    #192.168.48.130
    echo "3" >/data/zk/data/myid

    修改Zookeeper日志输出路径 /opt/service/zookeeper/bin/zkEnv.sh

    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
        ZOO_LOG_DIR="/log/zk"
    fi

    JVM配置/opt/service/zookeeper/conf/java.env

    #!/bin/sh
    export JAVA_HOME=/usr/local/jdk
    # heap size MUST be modified according to cluster environment
    export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"

    配置环境变量

    # cat /etc/profile.d/zk.sh 
    export ZK_HOME=/opt/service/zookeeper
    export PATH=$PATH:$ZK_HOME/bin
    
    # source /etc/profile.d/zk.sh 

    启动

    zkServer.sh start

    查看状态

    # zkServer.sh status
    $ echo ruok|nc localhost 2181     #他检查服务器是否正在运行而没有任何错误。该如果它正在运行,服务器将响应imok。 如果服务器出现了一些错误状态,它不会响应此命令
    $ echo conf|nc localhost 2181     #输出server的详细配置信息
    $ echo cons|nc localhost 2181     #输出指定server上所有的客户端连接的详细信息,包括客户IP,回话ID等
    $ echo crst|nc localhost 2181     #重置所有的连接信息统计
    $ echo mntr|nc localhost 2181     #输出zk的一些运行时信息
    $ echo stat|nc localhost 2181     #输出server简要状态和连接的客户端信息
    $ echo dump|nc localhost 2181     #输出所有等待队列中的回话和临时节点的信息,针对leader
    $ echo envi|nc localhost 2181     #输出环境参数
    四字母

     Zookeeper核心特性

  • 相关阅读:
    准爸爸日记之二
    生日的纪念
    未将对象引用设置到对象的实例未将对象引用设置到对象的实例(C#)
    读《中国合伙人》
    Command模式实例(C#)
    开源的C#项目
    抽象工厂模式(C#)
    桥模式(Bridge Pattern)
    抽象工厂模式实例(C#)
    适配器模式实例(C#)
  • 原文地址:https://www.cnblogs.com/sellsa/p/11208532.html
Copyright © 2020-2023  润新知