org.apache.zookeeper.Zookeeper
Zookeeper ÊÇÔÚ Java Öпͻ§¶ËÖ÷À࣬¸ºÔð½¨Á¢Óë zookeeper ¼¯ÈºµÄ»á»°£¬ ²¢Ìṩ·½·¨½øÐвÙ×÷¡£
org.apache.zookeeper.Watcher
Watcher ½Ó¿Ú±íʾһ¸ö±ê×¼µÄʼþ´¦ÀíÆ÷£¬Æä¶¨ÒåÁËʼþ֪ͨÏà¹ØµÄÂß¼£¬ °üº¬ KeeperState ºÍ EventType Á½¸öö¾ÙÀ࣬·Ö±ð´ú±íÁË֪ͨ״̬ºÍʼþÀàÐÍ£¬ ͬʱ¶¨ÒåÁËʼþµÄ»Øµ÷·½·¨£ºprocess£¨WatchedEvent event£©¡£
process ·½·¨ÊÇ Watcher ½Ó¿ÚÖеÄÒ»¸ö»Øµ÷·½·¨£¬µ± ZooKeeper Ïò¿Í»§¶Ë·¢ËÍÒ»¸ö Watcher ʼþ֪ͨʱ£¬¿Í»§¶Ë¾Í»á¶ÔÏàÓ¦µÄ process ·½·¨½øÐлص÷£¬´Ó¶øÊµÏÖ¶ÔʼþµÄ´¦Àí¡£
5.1 £® »ù±¾Ê¹ÓÃ
½¨Á¢ java maven ÏîÄ¿,ÒýÈë maven pom ×ø±ê¡£
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
5.2 £® ¸ü¶à²Ù×÷ʾÀý
public static void main(String[] args) throws Exception {
// ³õʼ»¯ ZooKeeper ʵÀý(zk µØÖ·¡¢»á»°³¬Ê±Ê±¼ä£¬ÓëϵͳĬÈÏÒ»Ö¡¢watcher)
ZooKeeper zk = new ZooKeeper("node-21:2181,node-22:2181", 30000, new Watcher() {
@Override
public void process(WatchedEvent event) {
System.out.println("ʼþÀàÐÍΪ£º" + event.getType());
System.out.println("ʼþ·¢ÉúµÄ·¾¶£º" + event.getPath());
System.out.println("֪ͨ״̬Ϊ£º" +event.getState());
}
});
// ´´½¨Ò»¸öĿ¼½Úµã
zk.create("/testRootPath", "testRootData".getBytes(), Ids.OPEN_ACL_UNSAFE,
CreateMode.PERSISTENT);
// ´´½¨Ò»¸ö×ÓĿ¼½Úµã
zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zk.getData("/testRootPath",false,null)));
// È¡³ö×ÓĿ¼½ÚµãÁбí
System.out.println(zk.getChildren("/testRootPath",true));
// ÐÞ¸Ä×ÓĿ¼½ÚµãÊý¾Ý
zk.setData("/testRootPath/testChildPathOne","modifyChildDataOne".getBytes(),-1);
System.out.println("Ŀ¼½Úµã״̬£º["+zk.exists("/testRootPath",true)+"]");
// ´´½¨ÁíÍâÒ»¸ö×ÓĿ¼½Úµã
zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zk.getData("/testRootPath/testChildPathTwo",true,null)));
// ɾ³ý×ÓĿ¼½Úµã
zk.delete("/testRootPath/testChildPathTwo",-1);
zk.delete("/testRootPath/testChildPathOne",-1);
// ɾ³ý¸¸Ä¿Â¼½Úµã
zk.delete("/testRootPath",-1);
zk.close();
}
×÷ÕߣºÀÖÓã²¥¿ÍÔÆ¼ÆËã´óÊý¾ÝÅàѵѧԺ
Ê×·¢£ºhttp://cloud.itcast.cn/