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的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

Zookeeper中节点操作代码

Zookeeper客户端java代码操作

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Java代码操作zookeeper