• Zookeeper集群搭建


    1.单节点zk搭建

    1.)安装

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
    # 解压
    tar -xcf aparche-zookeeper-3.6.0-bin.tar.gz
    

    2.)zoo.cfg配置文件

    # The number of milliseconds of each tick
    tickTime=2000 #心跳的单元时间 2s
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10 #follower和leader开始连接的最长时间 20s
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5 #follower和leader同步的最长时间 10s
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/data/zookeeper/zk1 #myid所在目录,数据目录
    dataLogDir=/data/zookeeper/zk1/logs # 日志目录
    # the port at which the clients will connect
    clientPort=2181 # 客户端连接server的端口,即对外服务端口
    server.1=dev1.xiayu.com:2881:3881 
    server.2=dev2.xiayu.com:2882:3882
    server.3=dev3.xiayu.com:2883:3883
    #server.1 server.2 server.3代表有3台机器 123要同myid文件对应;
    #2881,2882,2883是数据同步端口;
    #3881,3882,3883是选举端口
    

    3.)在zk数据目录data目录下,创建myid文件

    vim myid
    1    # 三个文件中,分别写入1,2,3  表示节点序号
    

    4.)启动

    ./bin/zkServer.sh start
    # 查看状态
    ./bin/zkServer.sh status
    # 查看进程
    jps
    # 查看集群状态
    zkServer.sh status
    

    5.)命令行访问

    ./bin/zkCli.sh -server dev1.xiayu.com:2181,dev2.xiayu.com:2182,dev3.xiayu.com:2183 # 连接所有节点
    
    ./bin/zkCli.sh -server 192.168.20.120:2181
    

    6.)ZK配置sasl

    修改zoo.cfg

    # sasl配置
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    

    添加用户

    运行zkCli.sh
    # 查看当前身份认证
    getAcl /
    # 增加一个认证用户
    addauth digest zkadm:123456
    设置权限
    setAcl / auth:zkadm:123456:cdrwa
    重启服务
    zkServer.sh restart  # 貌似可以不重启
    

    7.)zk常用命令

     bin/zkCli.sh -server 127.0.0.1:2181   # zkCli 客户端连接
     
     # 创建节点
      create /mynode hello   # 创建永久节点
      create -s /mynode hello  # 创建有序节点
      create -e /temp hello # 创建临时节点
      
     # 列出节点
     ls /mynode   # 列出节点
     ls -s /mynode  # 显示详情
     
     # 节点监控
     ls -w /mynode   # 注意:监听是一次性的
     create /mynode/subnode2  # 创建节点会产生NodeChildrenChanged事件
     delete /mynode/subnode2  # 删除节点也会产生NodeChildrenChanged事件
     
     ls -w /mynode/subnode2 # 监听子节点
     delete /mynode/subnode2 # 会有删除节点的事件NodeDeleted 
     
     # 获取节点信息
     get /mynode
     get -s /mynode  # 获取详情
     get -w /mynode/subnode # 监控节点信息变化
     delete /mynode/subnode  # 删除节点事件 NodeDeleted 
     
     # 节点状态
     stat /mynode
     # 如果节点内容发生改变,会产生 NodeDataChanged 事件;如果删除节点,会产生 NodeDeleted 事件
     stat -w /mynode 监听节点状态
     
     # 修改节点信息
     set /mynode hello # 修改节点值之后,mZxid、mtime、dataVersion 都发生了变化
     stat /mynode
     
     #删除节点
     delete /mynode
     deleteall /mynode  # 如果有子节点的时候,都会删除
     
     # 其他
     history # 历史记录
     redo [cmdno]  # 重复之前的命令,加命令编号
     printwatches on|off #输出watch事件
     quit # 退出
     sync path # 强制客户端所连接的服务器状态与leader的状态同步
    

    2. zookeeper连接工具

    PrettyZoo: https://cloud.tencent.com/developer/article/1758584

    https://zhuanlan.zhihu.com/p/353163620

    总结

    zk集群搭建所需外部变量:

    1.)数据目录、日志目录

    2.)服务端口,默认2181

    3.)其他节点的IP,数据同步端口,选举端口 (默认2881:3881)

    4.) JAVA环境

    参考链接

    zookeeper原理

    zookeeper原理和应用场景

    zookeeper环境搭建

    zookeeper环境搭建2

    zookeeper常用命令

    【励志篇】: 古之成大事掌大学问者,不惟有超世之才,亦必有坚韧不拔之志。
  • 相关阅读:
    Python 函数式编程学习
    Perl 学习笔记-目标操作
    Ubuntu14.04-LTS 从系统安装到配置可用
    Perl 学习笔记-文件测试
    Perl 学习笔记-模块
    插曲 强大的神器 vmware
    18 11 16 网络通信 ---- 多线程 同步概念 解决资源互斥的问题
    18 11 15 网络通信 ---- 多任务----线程 threading
    18 11 14 案例 下载文件后端编写
    18 11 13 装了ssd 继续 网络通信 tcp 客户端的创建
  • 原文地址:https://www.cnblogs.com/tomtellyou/p/15018839.html
Copyright © 2020-2023  润新知