Java tutorial
/* * Copyright 2005-2020 Daxia Team All rights reserved. * License: Daxia Team license */ package com.ling.zookeeper; import java.io.IOException; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.data.Stat; public class ConfigCenter implements Watcher { ZooKeeper zk = null; String znode; ConfigCenter(String address, String znode) { this.znode = znode; try { this.zk = new ZooKeeper(address, 3000, this); Stat stat = this.zk.exists(this.znode, true); if (stat == null) { this.zk.create(znode, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } } catch (IOException e) { this.zk = null; e.printStackTrace(); } catch (KeeperException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void process(WatchedEvent event) { System.out.println(event.toString()); try { this.zk.exists(this.znode, true); } catch (KeeperException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } public void updateConfig(String str) { try { Stat s = this.zk.exists(this.znode, true); this.zk.setData(this.znode, str.getBytes(), s.getVersion()); } catch (KeeperException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }