【Zookeeper02】ZK的作用以及使用

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

猜你喜欢

转载自blog.csdn.net/the_fool_/article/details/80926882