上一篇介绍了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