上一篇介绍了ZK的安装以及集群的搭建,这只能算是个软件安装过程,具体是做什么的、怎么用也没有做解释,这一篇中博主就自己的私人理解简单写一下:
1、是什么:
a、Zookeeper是一个分布式协调服务,是一个中间件。
b、能提供主从协调、服务器节点控制、统一配置管理、分布式共享锁、统一名称服务等功能,比较有名的是大数据以及dubbo中服务的注册以及发现。
c、本质上只是管理、读取用户提交的数据,并为数据提供监听服务。
2、应用场景:
大数据
服务注册与发现
等等
3、一些概念:
a、 ZK的角色:
1、leader(主节点) ,不是固定的,启动后根据选举算法选出
2、follower(从节点)
b、ZK数据结构
1、一颗与目录结构类似的树,根节点为"/",子节点为root下的 “/child1”、“/child2”等
2、树的每个节点为zNode,具有唯一的路径标识
3、每个zNode节点可以包含数据和子节点
4、通俗来说,key就是目录结构的写法,以此也可以表达父子关系
5、节点分为短暂节点(断开连接删除)与永久节点(断开连接不删除)
create -e /root
4、zkcli的简单使用
a、安装以及启动 点击打开链接
b、控制台客户端
打开客户端: root@ubuntu15:/usr/local/zookeeper-3.4.10/bin# ./zkCli.sh
查看命令:
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
[zk: localhost:2181(CONNECTED) 1]
切换节点:
[zk: localhost:2181(CONNECTED) 1] connect 192.168.0.16:2181
[zk: 192.168.0.16:2181(CONNECTED) 2]
创建与读取数据:
[zk: 192.168.0.16:2181(CONNECTED) 2] ls
[zk: 192.168.0.16:2181(CONNECTED) 3] ls /
[zookeeper]
[zk: 192.168.0.16:2181(CONNECTED) 4] create /child1 thisischild
Created /child1
[zk: 192.168.0.16:2181(CONNECTED) 5] ls /
[zookeeper, child1]
[zk: 192.168.0.16:2181(CONNECTED) 6] create /child1/grandSon this is grandson
Created /child1/grandSon
[zk: 192.168.0.16:2181(CONNECTED) 7] ls child1
Command failed: java.lang.IllegalArgumentException: Path must start with / character
[zk: 192.168.0.16:2181(CONNECTED) 8] ls /child1
[grandSon]
[zk: 192.168.0.16:2181(CONNECTED) 9] get /child1
thisischild
cZxid = 0x100000006
ctime = Thu Jul 05 00:30:41 PDT 2018
mZxid = 0x100000006
mtime = Thu Jul 05 00:30:41 PDT 2018
pZxid = 0x100000007
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1
5、java驱动提供的API