zookeeper的简单使用

1、zoo.cfg的常用配置

zookeeper的简单使用_第1张图片
tickTime=2000 zookeeper中最小的时间单位长度 (ms),只是单位
initLimit=10 follower节点启动后与leader节点完成数据同步的时间----10tickTime=102000=20000ms=20s
syncLimit=5 leader节点和follower节点进行心跳检测的最大延时时间
dataDir=/tmp/zookeeper 表示zookeeper服务器存储快照文件的目录
dataLogDir 表示配置 zookeeper事务日志的存储路径,默认指定在dataDir目录下
clientPort 表示客户端和服务端建立连接的端口号: 2181

2、zookeeper中的相关概念

1、数据模型
zookeeper的数据模型和文件系统类似(和Linux相似),每一个节点称为:znode. 是zookeeper中的最小数据单元。每一个znode上都可以保存数据和挂载子节点。 从而构成一个层次化的属性结构

2、节点特性
持久化节点 : 节点创建后会一直存在zookeeper服务器上,直到主动删除
持久化有序节点 :每个节点都会为它的一级子节点维护一个顺序
临时节点 : 临时节点的生命周期和客户端的会话保持一致。当客户端会话失效,该节点自动清理
临时有序节点 : 在临时节点上多勒一个顺序性特性

3、会话
客户端和zookeeper建立连接的过程就是会话。
NOT_CONNECTED:未连接
CONNECTING:连接中
CONNECTED:已连接
CLOSED:连接关闭
在这里插入图片描述

3、客户端操作常见命令

  1. create [-s] [-e] path data acl
    -s 表示节点是否有序
    -e 表示是否为临时节点
    默认情况下,是持久化节点

  2. get path [watch]
    获得指定 path的信息

3.set path data [version]
修改节点 path对应的data
乐观锁的概念
数据库里面有一个 version 字段去控制数据行的版本号

4.delete path [version]
删除节点

stat信息
cversion = 0 子节点的版本号
aclVersion = 0 表示acl的版本号,修改节点权限
dataVersion = 1 表示的是当前节点数据的版本号
czxid 节点被创建时的事务ID
mzxid 节点最后一次被更新的事务ID
pzxid 当前节点下的子节点最后一次被修改时的事务ID
ctime = Sat Aug 05 20:48:26 CST 2017
mtime = Sat Aug 05 20:48:50 CST 2017

4、客户端操作zk

既然可以使用zkClient.sh的方式来操作zk,自然是可以通过第三方程序来操作zk的。java中常见的有
zkclient
curator
至于使用方式,可以直接参考github

5、zookeeper的实际应用场景

1、订阅发布
watcher机制:每个客户端(网元)监听zookeeper里的 一个节点,当节点的数据发生改变的时候,客户端就能收到通知
统一配置管理(如:disconf)
2、分布式锁
临时有序节点、watcher特性
3、负载均衡
4、ID生成器
5、分布式队列
6、统一命名服务
7、master选举

你可能感兴趣的:(个人心得)