zookeeper
Posted gg128
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper相关的知识,希望对你有一定的参考价值。
1.概念
2.安装与启动
安装略(二进制文件解压即可使用)
配置文件说明
# Zookeeper独立的工作时间单元 tickTime=2000 # 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)
初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是 tickTime)长度后 Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。
总的时间长度就是 10*2000=20 秒 initLimit=10 # 这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒 syncLimit=5 # 存储数据的地址 dataDir=/usr/local/zookeeper/zookeeper-3.4.10/data
# 存储日志的地址 dataLogDir=/usr/local/zookeeper/zookeeper-3.4.10/logs # 端口 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
#其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器。
挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,
所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号
#server.A=B:C:D
linux与windows下的启动
zkCli.cmd –server ip:port连接到指定的服务器地址 //windows
zkCli.sh –server ip:port连接到指定的服务器地址 //windows
基本命令
help 查看所有命令以及注释
ls path [watch] 类似linux的ls ,产看路径下的所有节点,或者指定目录下的节点的子节点
create [-s] [-e] path data acl 创建一个节点 ,-s或者-e表示创建的是顺序或临时节点,不加默认创建的是持久节点 ,Path为节点的全路径, Data为当前节点内孓储的数据 ,Acl 用来进行权限控制,缺省情况不做任何权限控制,临时节点不能创建子节点
get path [watch] 获取指定节点的路径的值
123表示值
cZxid:节点创建时的zxid
ctime:节点创建时间
mZxid:节点最近一次更新时的zxid
mtime:节点最近一次更新的时间
cversion:子节点数据更新次数
dataVersion:本节点数据更新次数
aclVersion:节点ACL(授权信息)的更新次数
ephemeralOwner:如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
dataLength:节点数据长度,本例中为hello world的长度
numChildren:子节点个数
set path data [version] 更新指定节点的数据内容 ,Path表示被更新的节点路径 , data为更新的数据 ,Version为指定被更新的数据版本,一般不指定,如果 数据版本已经更新,则指定旧版本时会报错
delete path [version] 删除节点
数据节点,Zk树形结构中的数据节点,用于存储数据
持久节点:一旦创建,除非主动调用删除操作,否则一直存储在zk中
临时节点:与客户端的会话绑定,一旦客户端会话失效,这个客户端创建的所有临时节点都会被移除
顺序节点:创建子节点时,如果设置属性SEQUENTIAL,则会自动在节点后面追加一个整型数子,上限是整形的最大值
watcher:Zk中引入了watcher机制来实现了发布/订阅功能,能够让多个订阅者同时监听某一个主题对象,当某个主题对象自身状态变化时,会通知所有订阅者
Watcher组成 :客户端 ,客户端watchManager ,Zk服务器
?Watcher机制 :客户端向zk服务器注册watcher 的同时,会将watcher对象存储在 客户端的watchManager ,Zk服务器触发watcher事件后,会向客户端发送通知,客户端线程从 watchManager中?起watcher执行
Watcher接口
public class ZLock implements Watcher
public void process(WatchedEvent event)
以上是关于zookeeper的主要内容,如果未能解决你的问题,请参考以下文章