@Test
public void curatorCacheBridgeTest() {
try {
// CuratorCache: 可以监听当前节点及其下所有节点的节点事件(修改数据+节点变化)
// 用于替代 NodeCache, PathChildrenCache, TreeCache
CuratorCache curatorCache = CuratorCache.bridgeBuilder(client, NODE).build();
curatorCache.listenable().addListener(new CuratorCacheListener() {
@Override
public void event(Type type, ChildData oldData, ChildData data) {
Optional<ChildData> oldOptional = Optional.ofNullable(oldData);
Optional<ChildData> newOptional = Optional.ofNullable(data);
log.info("type:{}, oldData:{}:{}:{}, newData:{}:{}:{}", type,
oldData, oldOptional.map(ChildData::getPath).orElse(null), oldOptional.map(item-> new String(item.getData())).orElse(null),
data, newOptional.map(ChildData::getPath).orElse(null), newOptional.map(item-> new String(item.getData())).orElse(null));
}
});
curatorCache.start();
TimeUnit.SECONDS.sleep(Integer.MAX_VALUE);
} catch (Throwable cause) {
cause.printStackTrace();
}
原文链接:https://blog.csdn.net/mrathena/article/details/110860407