zokkeeper的安装配置、简单操作

下载地址

  1. zekserver.cmd指定jdk
set JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_144
  1. 修改配置文件
conf/zoo_sample.cfg重命名为 zoo.cfg


# 心跳检测
tickTime=2000
#leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数
initLimit=10 
# leader和follower之间发送消息,请求和应达时间长度,最长不能超过多少个tickTime的时间长度
syncLimit=5
# Zookeeper 保存数据的目录.
dataDir=F:\\zookeeper\\data
# 日志目录
dataDirLog=F:\\zookeeper\\log
# 客户端链接的端口
clientPort=2181

3.客户端链接

zkCli -server 127.0.0.1:2181
客户端可以执行命令

create [-s] [-e] path data acl 
-s表示创建顺序节点 
-e表示创建临时节点 
data 数据
acl 权限

4.客户端代码操作

Znode的创建模式CreateMode有四种,分别是:EPHEMERAL(短暂的znode)、EPHEMERAL_SEQUENTIAL(短暂的顺序znode)、PERSISTENT(持久的znode)和PERSISTENT_SEQUENTIAL(持久的顺序znode)

public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
	        // 创建一个与服务器的连接
	        ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 5000, new Watcher() {
	            // 监控所有被触发的事件
	            public void process(WatchedEvent event) {
	                System.out.println("已经触发了" + event.getType() + "事件!");
	            }
	        });
			//认证
			//zk.addAuthInfo("digest", "guest:guest123".getBytes());  
	        // 创建一个目录节点 ==>已经触发了 None 事件!
	        zk.create("/testRootPath", "testRootData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
	        // 创建一个子目录节点
	        zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(), Ids.OPEN_ACL_UNSAFE,
	                CreateMode.PERSISTENT);

	        // testRootData 此处false 不触发事件
	        System.out.println(new String(zk.getData("/testRootPath", false, null)));

	        // 取出子目录节点列表 ==>[testChildPathOne] 在节点/testRootPath的getChildren上设置观察
	        System.out.println(zk.getChildren("/testRootPath", true));

	        // 修改子目录节点数据 由于上面的修改数据不触发观察 这边不执行事件
	        zk.setData("/testRootPath/testChildPathOne", "modifyChildDataOne".getBytes(), -1);

	        // 目录节点状态:[5,5,1281804532336,1281804532336,0,1,0,0,12,1,6]
	        System.out.println("目录节点状态:[" + zk.exists("/testRootPath", true) + "]");

	        // 创建另外一个子目录节点 ==>已经触发了 NodeChildrenChanged 事件!
	        zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(), Ids.OPEN_ACL_UNSAFE,
	                CreateMode.PERSISTENT);

	        // testChildDataTwo
	        System.out.println(new String(zk.getData("/testRootPath/testChildPathTwo", true, null)));

	        // 删除子目录节点 已经触发了 NodeDeleted 事件!

	        zk.delete("/testRootPath/testChildPathTwo", -1);
	        zk.delete("/testRootPath/testChildPathOne", -1);
	        // 删除父目录节点 已经触发了 NodeDeleted 事件!
	        zk.delete("/testRootPath", -1);
	        // 关闭连接
	        zk.close();
	    }

转载于:https://my.oschina.net/findurl/blog/1836699

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值