ZooKeeper的基本特性-以及常用命令行 create set delete

  1. zk常用命令行1

    1. ls 查看当前路径的节点
    2. ls -s 查看当前节点的状态信息(旧的版本为ls2 进行查询),目前使用的zookeeper为3.7版本
    3. stat 显示当前节点状态
      1. 相当于ls -s命令,但是ls -s还结合了ls显示当前节点的功能
    4. get 读取当前节点数据
      1. 当前节点为空
    5. znode的状态属性
      1. Znode 的状态属性(来自菜鸟教程)

        cZxid创建节点时的事务ID
        ctime创建节点时的时间
        mZxid最后修改节点时的事务ID
        mtime最后修改节点时的时间
        pZxid表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID(注意,只有子节点列表变更了才会变更pzxid,子节点内容变更不会影响pzxid)
        cversion子节点版本号,子节点每次修改版本号加1
        dataversion数据版本号,数据每次修改该版本号加1
        aclversion权限版本号,权限每次修改该版本号加1
        ephemeralOwner创建该临时节点的会话的sessionID。(**如果该节点是持久节点,那么这个属性值为0)**
        dataLength该节点的数据长度
        numChildren该节点拥有子节点的数量(只统计直接子节点的数量)
  2. zk特性-session的基本原理

    1. 客户端与服务端之间的连接存在会话
    2. 每个会话都会刻意设置一个超时时间
    3. 心跳结束,session则过期
    4. session过期,则临时节点znode会被抛弃
    5. 心跳机制:客户端向服务端的ping包请求。(客户端发送ping指令,还活着,服务器端你先不要把我删除了。如果我不发送了,挂了,服务器端你再把我删除。)
  3. zk常用操作指令2

    1. create命令
      1. 在客户端输入 create [-s] [-c] path dath acl
      2. 例如输入 create /hubbert hubbert-data
      3. 可以看到cversion 子节点的版本号还是0,以及dataVersion数据节点版本也还是0
      4. 由于目前是默认创建的(没有使用-s -e),所以创建的这个节点是非顺序的,没有顺序的,并且是持久化的
        1. 所以如果想要创建临时节点,直接create -e即可,如下图所示
        2. 可以看到此时cversion节点版本+1
        3. 再查看tmp临时节点
        4. 临时节点跟持久化节点的不同就看ephemeralOwner节点,很明显临时节点的ephmeralOwner节点的信息跟上面的不一样。
        5. 那么应该如何删除临时节点呢?只要断开客户端的链接即可。按住ctrl + c进行退出,然后再查询一下子节点
        6. 发现此时临时节点还是存在,因为此时还是具有一定的时效性。在断开链接之后,还是会存在心跳机制的,具有一定的时效,也就是只有在经过这个时效之后(10s或者20s),必须在心跳结束以后,服务器端接受不到心跳,此时才会把临时节点tmp给删掉。如下所示:tmp节点就没有了
      5. 创建顺序节点 create -s
        1. 可以看到此时子节点后面就会加上序号
    2. set命令:修改命令
      1. ​​​​​​​
      2. 从上图可以看出,hubbert节点的dataVersion从0 -> 1.并且值也修改为了new-data。
      3. 所以此时我们也可以根据dataVersion的版本来进行数据的更改 -v [版本号]
      4. 此时的版本号就会更新为2,所以此时如果再用1版本号进行更新,会提示版本号是非法的。
      5. 此处就是乐观锁的运用。乐观锁相关信息可以查看此链接:https://www.jianshu.com/p/d2ac26ca6525
    3. delete命令:删除命令
      1. ​​​​​​​
      2. 当然也可以选定节点的版本进行删除,如果版本号无效,也会提示对于的提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值