初识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]

你可能感兴趣的:(zookeeper,docker,java,容器)