zk 可视化客户端
zk 可视化工具: ZooInspector
参考: https://www.jianshu.com/p/f45af8027d7f
简介
特性
目录
还有 recipes 目录下面就是 demo ,, src 目录就是 zookeeper 的源码
配置
# The number of milliseconds of each tick 用于计算的时间单元 毫秒 : 比如 session 超时 : N* tickTime 。 所有的时间都是 以这个为单位
tickTime=5000
# The number of ticks that the initial
# synchronization phase can take 用于集群,允许从节点连接并同步到 master 节点的初始化连接时间,以 tickTime 的倍数表示
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement 用于集群,master 主节点与从节点之间发生消息,请求和应答时间长度(心跳机制)
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#dataDir=/tmp/zookeeper 必须配置,数据 目录
# dataDir=D:\\machine\\zookeeper-3.4.6\\datadir
dataDir=D:\\buildsoft\\java\zookeeper\\zookeeper-3.4.6\\datadir
# 日志目录,如果不配置会和 dataDir公用
dataLogDir=D:\\buildsoft\\java\\zookeeper\\log
# the port at which the clients will connect
# 连接服务器的端口
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
zk 数据模型介绍
数据模型基本操作
./zkCli.sh 即可以 启动 zk 客户端了
zk 的作用体现
常用命令
get 获取 目录数据
stat 获取 目录抓态 与 ls2 一样的
cZxid 即 zk 为该 目录节点创建的id
ctime 节点创建时间
mZxid 修改后分配的id
mtime 修改时间
pZxid 子节点id
cversion 子节点版本号, dataversion 当前节点的数据的版本号, aclVersion 权限版本号
numChildren 子节点数量
ephemeralOwner = 0x0 代表是 永久节点,如果不是 oxo 就算 临时节点
session 基本原理与create 命令
即再 session 过程中,创建的临时节点都会被删除
比如 create /file filedata 那么就会创建一个 永久节点 , 并且节点数据是 filedata . 节点配置都是取默认值
create -e /file/tmp tmpdata 就算创建 临时节点, 要带上 -e
create -s 就是 创建 永久的 顺序节点 ,就算 -s . 累加又小到大递增
set 命令 : 可以 设置节点的数据,如果带上版本号,具有乐观锁的作用
delete 命令: 删除 节点 ,同时可以加上版本号做乐观锁
zk 特性: watcher 特性 类似 触发器
watcher 命令行
watcher 事件类型
即当创建一个 节点的时候
删除和修改时候,增加watch 都是使用: get /path wath名称
子节点watchcer事件
修改 子节点的数据 的话,是不会触发事件的 。 除非明确给该 子节点创建watch
watcher 常用场景
ACL 权限控制
ACL命令
ACL 构成
world 后面 只能是 anyone
permissions
admin 代表权限比较高
默认权限
默认是谁都有所有权限
auth 讲解
比如: addauth digest im im 即创建 一个用户是 im , 密码是 im 的用户。 这语句也是登录的意思
比如 : setAcl /names/im auth:im:im:cdrwa 即 为 路径 /names/im 赋予权限 用户是 im 密码是im ,权限是 增删读写设置的 权限
IP讲解
设置IP的权限
super 超级管理员
以上就算 再 nohup 加多一行 配置超级管理员的用户密码和密码
参考 https://blog.csdn.net/u010900754/article/details/78498291
acl 常用使用场景
zk 四字命令
比如 echo cons | nc 192.168.0.102 2181 就可以参考 zk 的环境配置了
命令 wchc 与 wchp 需要在 zk 配置文件后面加上 配置 才可以的
4lw.commands.whitelist=*
zk 集群
配置集群例子
第一个端口比如 2888 是用来进行集群的数据同步的,第二个端口比如 3888 是用来进行 选举 master 节点用的
在 zookeeper /bin 下面 执行 zkServer.sh status 可以 查看机器是 主还是从
常用的zk Java 客户端
curator 比较常用
apache curator
zk 分布式锁
释放锁,也就是删除 之前创建的zk节点 。 节点类型不能是 永久性的节点,必须是 临时节点