java zookeeper连不上_zookeeper - 通过java代码连接zookeeper(2)

packagecom.amber;import org.apache.zookeeper.*;importorg.apache.zookeeper.data.Stat;importjava.io.IOException;public classZookeeperWatchDemo {privateZooKeeper zookeeper;private String oldValue = "";private String newValue = "";public ZooKeeper zkConnect( ) throwsIOException {

String path= "127.0.0.1:2181";

zookeeper= new ZooKeeper(path, 20 * 1000, null);returnzookeeper;

}public void createZnode(String path, byte[] value, Watcher watcher, CreateMode node ) throwsKeeperException, InterruptedException {

zookeeper.create(path, value, ZooDefs.Ids.OPEN_ACL_UNSAFE, node);

}public String getZnodeValue(final String path ) throwsKeeperException, InterruptedException {byte[] data = zookeeper.getData(path, newWatcher() {

@Overridepublic voidprocess(WatchedEvent watchedEvent) {

triggerWatch(path);

}

},newStat());

oldValue= newString(data);return newString(data);

}public booleantriggerWatch (String path) {byte[] data = new byte[0];try{

data= zookeeper.getData(path, newWatcher() {

@Overridepublic voidprocess(WatchedEvent watchedEvent) {

triggerWatch(path);

}

},newStat());

}catch(KeeperException e) {

e.printStackTrace();

}catch(InterruptedException e) {

e.printStackTrace();

}

newValue= newString(data);if(oldValue.equals(newValue)) {

System.out.println("on change");return false;

}else{

System.out.println("oldvalue: " + oldValue + "new value: " +newValue);

oldValue=newValue;return true;

}

}public static void main(String[] args) throwsIOException, KeeperException, InterruptedException {//创建

ZookeeperWatchDemo zookeeperWatchDemo = newZookeeperWatchDemo();

ZooKeeper zooKeeper=zookeeperWatchDemo.zkConnect();

String path= "/amberas";

String value= "hahahahaha";if (zooKeeper.exists(path, false) == null) {

zookeeperWatchDemo.createZnode(path, value.getBytes(),null, CreateMode.PERSISTENT);

}

String znodeValue=zookeeperWatchDemo.getZnodeValue(path);

System.out.println(znodeValue);

Thread.sleep(1000 * 60 * 50);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值