美文网首页
Zookeeper学习-03 Zookeeper入门

Zookeeper学习-03 Zookeeper入门

作者: bocsoft | 来源:发表于2020-03-26 22:08 被阅读0次

    1、下载

    官网地址:http://zookeeper.apache.org/

    下载01.png 下载02.png

    2、解压并配置

    1)把zoo_sample.cfg复制一份,并且重命名为zoo.cfg,并且修改zoo.conf里相关配置


    配置更改.png

    最重要的两个配置是:
    dataDir:放置日志文件和快照文件的路径,不建议为tmp目录,因为Linux系统会对tmp目录自动清理
    clientPort:外部应用连接Zookeeper的端口,默认是2181
    把dataDir的配置更改为:/root/data/zookeeper,配置的是绝对路径
    2)设置环境变量

    vim /etc/profile
    export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.0-bin
    export ZOOBINDIR=$ZOOKEEPER_HOME/bin
    export PATH=$ZOOBINDIR:$PATH
    
    

    修改保存后,使用source /etc/profile 更新环境变量。

    3、启动Zookeeper

    使用zkServer.sh start 启动Zookeeper服务。
    检查Zookeeper日志是否有出错信息。
    检查Zookeeper的数据文件。
    检查Zookeeper是否在2181端口上监听。


    启动Zookeeper.png
    1. 执行以下语句,查看日志文件中是否有异常信息:
      【grep -E 选项可以用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用 | 来分割多个pattern,以此实现OR操作;
      -i 不区分大小写
    grep -E -i "((exception)|(error))" *
    
    日志错误查看.png

    无输出,说明日志中无报错信息。
    2)查看Zookeeper的交易日志文件
    在/root/data/zookeeper目录下,通过tree命令查看【可通过yum -y install tree 命令安装tree】:


    tree命令查看.png

    此时只是快照文件。
    3)查看Zookeeper是否在指定的端口上监听

    netstat -an | ag 2181 或者 netstat -lnp|grep 2181 或者 lsof -i tcp:2181
    
    端口监听.png

    以上证明Zookeeper服务已经成功启动了。

    4、zkCli简单使用

    1)启动zkCli,查看是否与Zookeeper节点建立了有效连接且Session是否已经初始化完成


    zkCli命令.png
    zkCli启动成功.png

    通过输入help可以查看支持的常用命令:


    zkCli help命令.png

    通过命令 ls -R / 可以查看Zookeeper自带的znode:


    查看自带znode.png

    2)创建znode


    创建znode.png

    再通过ls -R / 命令查看znode结构:

    查看znode结构.png

    5、实现一个锁

    分布式锁要求:如果锁的持有者宕机了,锁可以被释放。Zookeeper的ephemeral节点恰好具备这样的特性:


    实现一个锁.png

    步骤:
    1)打开两个zkCli客户端
    2)在第一个客户端中,创建一个临时znode:

    create -e /lock
    
    创建锁01.png

    表示第一个客户端加锁成功。
    3)在第二个客户端中也尝试进行加锁,加锁的操作其实就是创建znode


    创建锁02.png

    加锁失败,因为lock这个节点已经被别人创建了
    4)在第二个客户端,监控znode,也就是在等待锁被释放

     stat -w  /lock
    
    查看锁状态.png

    5)退出第一个客户端:quit


    退出客户端.png

    在第二个客户端里面,会收到一个WatchedEvent事件:


    查看WachedEvent事件.png

    6)在第二个客户端收到WatchedEvent事件之后,再尝试加锁,此时加锁成功


    加锁成功.png

    相关文章

      网友评论

          本文标题:Zookeeper学习-03 Zookeeper入门

          本文链接:https://www.haomeiwen.com/subject/haphuhtx.html