在配置的各集群中使用zkServer.sh
就可以开启集群,然后随便选择一台机器使用zkCli.sh
开启zookeeper客户端
在客户端中输入help
可以看到所有zookeeper支持的命令
下面列举几个常用命令
- stat:stat后面跟上路径,可以列举出当前目录的状态
- ls: 跟Linux中的ls一样,只不过zookeeper只支持绝对路径,所以在zookeeper中显示路径内容,要写全部路径名
- create:创建目录后面一定要跟数据,比如create /list是不会成功创建的,只有create /list “”才可以。-e表示创建一个临时节点,退出当前客户端该节点就会消失。(注意我们上一篇博客说了Zookeeper具有单系统映像,所以即使客户端进行了故障转移(failover),sessionId也是早就被所有节点共享,那么对应的临时节点并不会丢失)-s表示创建一个顺序节点,zookeeper会默认在节点名后加一个数值序列,是永久节点(如果是两个客户端,同时创建一个xxx节点,那么如果不用-s,就会发生覆盖,如果用了-s,则会创建两个不同的目录,因为后面的序号不同)。
- get:获取节点中的数据及信息,如get /list,会返回””及相关信息
cZxid,mZxid,pZxid都是一个单调递增的序列。cZxid表示该节点创建时的事务id(不要太相信你的事务id,因为需要在所有节点间进行同步sessionid等操作,这些都会占用事务id,所以你在create了一个节点后,做了一些其他事情,再create新节点,它们的cZxid不一定连续)。mZxid表示修改节点数据的最新事务id,pZxid表示该节点下最新的子节点的cZxid。ephemeralOwner该临时节点的持有者,如果是0x0代表没有持有者,也说明该节点时永久节点。如果是用-e方式创建的该节点,这里就会有值,值为当前所属的sessionID。 - set:设置节点中的数据,如set /list “hello”,再用get /list,就会得到”hello”及其相关信息
- rmr:删除对应路径节点,及其所有子节点
- history:查询之前使用过的命令记录
- quit:退出客户端
回顾一下,Zookeeper怎么帮我们做到统一配置管理的:
- 使用了统一的目录树,每个节点最多存1MB数据。通过这个节点可以存所有服务共用的数据
- 分组管理:采用了path结构,可以分组管理不同资源
- 统一命名:根据cZxid
- 是同步的:靠临时节点和复制集群特性
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20579.html