• 初识Zookeeper


    一、Zookeeper
    1.java语言开发
    2.Zookeeper官网:https://zookeeper.apache.org/
    3.Wiki:https://en.wikipedia.org/wiki/Apache_ZooKeeper
    4.单体架构 Client->Zookeeper Server
    方式一:基于centos7.x
    jps -l  查看进程列表
    方式二:基于源码方式启动
    mvn clean install 
    方式三:docker容器化的方式进行启动
    1.拉取镜像   
      docker pull zookeeper:3.7.1
    2.根据镜像创建container   docker images 查看镜像
      docker run -d --name jack-zk-server-p 2281 zookeeper:3.7.1
    3.并且创建网络映射的访问方式
      docker.hub.com
    二、客户端访问zk-server
    1.zkCli.sh
    2.源码:org.apache.zookeeper.ZookeeperMain
    3.prettyZoo可视化软件
    4.zkui:图形化界面  nohup java -jar zkui-2.0.0.jar 后台启动
    github:https://github.com/DeemOpen/zkui
    5、基础知识学习一下
    6、了解一下服务端的数据模型
    hobby coding
    7、ls -r/递归下面的文件  文件系统模型 增删改查节点
        ZNode
        /gupao
        /gupao/jack
        /gupao/jack/age 
        Zookeeper Stat Structure
    8.每个节点的元数据
    9.czxid = 0x17
    10.ctime= ZNode节点创建的时间
    11.mtime= 当前节点最后一次被修改的时间
    12.numChildren=0  当前节点子节点数量
    13.dataLength:当前节点保存的数据长度
    14.ephemeralOwner:当前节点是否为临时节点,如果为临时节点则该值为
       sessionid,否则为0
    15.dataVersion  当前节点的数据被修改的次数,也就是数据的版本
    16.cVersion=0  子节点的版本号
    17.aclVerson=0 权限控制相关 acl的版本号
        zxid
        cZxid=0x17
        mZxid=0x17
        pZxid=0x17
        zookeeper的事务id
    18.zxid是事务编号的id,初始值为0,长度是8字节的整数,也就是对应着64位
    bit 前32位表示epoch 后32位用来计数
    19.初始值 0x0:每次进行一次事务操作,后面的create/gupao/jack
                   10次事务操作  stat 节点 命令查看节点的状态
    20.集群中如果进行了一次leader选举,那么前面的32位也会+1,并且把后面的32位全部初始化0
       64位的bit全部用完 11111111111111111111111111111111
    21.cZxid=0x17:表示当前节点被创建的时候,最新的zxid 5
    22.mZxid=0x17:当前节点最后一次被更新是的zxid
    23.pZxid=0x17:表示该节点的子节点最后一次被修改的事务id,注意只有子节点变化才会影响pzid,
       子节点的数据变化不会影响pzid
    三、节点的类型
    1.create 默认:-p persistent 默认创建的持久节点 不会因为客户端挂了 而被删除 注册中心的时候,服务名称是不是就可以持久化节点完成呢?
      create /jack 666 持久节点
    2.可以指定-e
      会因为客户端挂了 而被删除 
      create -e /testss 666   临时节点
    3.服务注册中的:url地址 znode order-service01 挂了 192.168.0.10 要删除?
    4.分布式锁:redisson setnx 30s
    5.zookeeper 临时节点创建 分布式锁:redisson
      client 01 临时节点 可以不要担心死锁
    6.有序节点:会给节点名称添加一个自增的序号
    7.通常会节点持久节点和临时节点一起使用
    8.持久有序节点
    9.临时有序节点
    10。容器节点
    11.TTL节点:在zoo.cfg中配置zookeeper.extendedTypesEnabled=true[记得重启zkServer]

  • 相关阅读:
    如何找到攻击数据包中的真实IP地址?
    【libcurl】7.8.4 MT v142 构建
    世界国旗/地图:世界各国国旗图标整理/与echarts世界地图配置对应
    使用Vercel托管python后端API——引包引环境,手把手详细教程
    期货公司开户后续会有哪些服务?
    【信号去噪】基于麻雀搜索算法优化VM实现信号去噪附matlab代码
    Unity 在子线程中调用主线程的方法
    感冒了吃抗生素有用吗?
    spring boot项目中使用nacos作为配置中心
    vector接口介绍&迭代器失效问题
  • 原文地址:https://blog.csdn.net/qq_33816292/article/details/126337885