Zookeeper学习笔记

Zookeeper入门

Zookeeper特点

  1. 一个领导者,多个跟随者组成的集群。
  2. 集群只要有半数以上节点存活Zookeeper集群就可以正常运行,Zookeeper适合奇数台服务器。
  3. 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接那个Server,数据都是一致的。
  4. 更新请求顺序执行,来自同一个Client的更新请求暗器发送顺序依次执行
  5. 数据更新原子性,一次跟新要么成功,要么失败。
  6. 实时性,在一定时间范围内,Client能读到最新数据。

集群

集群安装

  1. 将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件

  2. 创建zkData文件夹,将配置文件中的dataDir修改为zkData
    在这里插入图片描述

  3. 在zkData中添加myid文件,文件中写入id

  4. 在zoo.cfg中添加
    在这里插入图片描述
    server.A = B:C:D
    A为myid中的id
    B为IP地址
    C为交换信息的端口
    D为选举端口

选举

第一次选举

当集群没有leader时,服务器启动会投自己一票,状态为looking,当有新的服务器时,服务器会进行比较myid,将票投给myid大的服务器,当某台服务器的选票大于节点半数时,改服务器选举为leader,其他的服务器状态改为follower,当再有新的服务器启动时,不会改变选票和状态。

非第一次选举

依次比较epoch,zxid,serverid
元素相同时,比较下一个元素

客服端命令行

节点信息

znode状态信息
每个znode数据节点中除了可以存储业务数据外,其本身还存储了数据节点相关的一些状态信息。共包含以下几种状态信息。

znode状态信息解释
cZxidcreate ZXID,即该数据节点被创建时的事务id
ctimecreate time,即该节点的创建时间
mZxidmodified ZXID,即该节点最终一次更新时的事务id
mtimemodified time,即该节点最后一次的更新时间
pZxid该节点的子节点列表最后一次修改时的事务id,只有子节点列表变更才会更新pZxid,子节点内容变更不会更新
cversion子节点版本号,当前节点的子节点每次变化时值增加1
dataVersion数据节点内容版本号,节点创建时为0,每更新一次节点内容(不管内容有无变化)该版本号的值增加1
aclVersion节点的ACL版本号,表示该节点ACL信息变更次数
ephemeralOwner创建该临时节点的会话的sessionId;如果当前节点为持久节点,则ephemeralOwner=0
dataLength数据节点内容长度
numChildren当前节点的子节点个数

https://www.jianshu.com/p/cbe5f0dd6cca

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值