十九curator recipes之PathChildrenCache
Posted lay2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十九curator recipes之PathChildrenCache相关的知识,希望对你有一定的参考价值。
简介
curator可以监听路径下子节点的变更操作,如创建节点,删除节点
官方文档:http://curator.apache.org/curator-recipes/path-cache.html
javaDoc:http://curator.apache.org/apidocs/org/apache/curator/framework/recipes/cache/PathChildrenCache.html
代码示例
import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.cache.PathChildrenCache; import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener; import org.apache.curator.retry.ExponentialBackoffRetry; public class PathChildrenCacheDemo { private static CuratorFramework client = CuratorFrameworkFactory.newClient("localhost:2181", new ExponentialBackoffRetry(3000, 1)); private static String path = "/path/test/0001"; static { client.start(); } public static void main(String[] args) throws Exception { PathChildrenCache pathChildrenCache = new PathChildrenCache(client, path, true); pathChildrenCache.getListenable().addListener(new PathChildrenCacheListener() { @Override public void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent pathChildrenCacheEvent) throws Exception { System.out.println(pathChildrenCacheEvent.toString()); } }); pathChildrenCache.start(); System.out.println("started"); Thread.sleep(2000); System.out.println("sleep end"); client.create().forPath(path + "/000002"); client.delete().forPath(path + "/000002"); System.out.println("updated"); pathChildrenCache.close(); System.out.println("close"); Thread.sleep(50000); client.close(); } }
以上是关于十九curator recipes之PathChildrenCache的主要内容,如果未能解决你的问题,请参考以下文章
七curator recipes之阻塞队列SimpleDistributedQueue
九curator recipes之不可重入锁InterProcessSemaphoreMutex
十curator recipes之信号量InterProcessSemaphoreV2