org.apache.zookeeper.ZooKeeper.getChildren()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(209)

本文整理了Java中org.apache.zookeeper.ZooKeeper.getChildren()方法的一些代码示例,展示了ZooKeeper.getChildren()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZooKeeper.getChildren()方法的具体详情如下:
包路径:org.apache.zookeeper.ZooKeeper
类名称:ZooKeeper
方法名:getChildren

ZooKeeper.getChildren介绍

[英]Return the list of the children of the node of the given path.

If the watch is non-null and the call is successful (no exception is thrown), a watch will be left on the node with the given path. The watch will be triggered by a successful operation that deletes the node of the given path or creates/delete a child under the node.

The list of children returned is not sorted and no guarantee is provided as to its natural or lexical order.

A KeeperException with error code KeeperException.NoNode will be thrown if no node with the given path exists.
[中]返回给定路径节点的子节点列表。
如果watch为非null且调用成功(未引发异常),则将在节点上保留一个具有给定路径的watch。成功删除给定路径的节点或在节点下创建/删除子节点的操作将触发监视。
返回的儿童名单没有分类,也不能保证其自然顺序或词汇顺序。
错误代码为KeeperException的KeeperException。如果不存在具有给定路径的节点,将抛出NoNode。

代码示例

代码示例来源:origin: apache/zookeeper

/**
 * The asynchronous version of getChildren.
 *
 * @since 3.3.0
 * 
 * @see #getChildren(String, boolean, Stat)
 */
public void getChildren(String path, boolean watch, Children2Callback cb,
    Object ctx)
{
  getChildren(path, watch ? watchManager.defaultWatcher : null, cb, ctx);
}

代码示例来源:origin: apache/zookeeper

/**
 * The asynchronous version of getChildren.
 *
 * @see #getChildren(String, boolean)
 */
public void getChildren(String path, boolean watch, ChildrenCallback cb,
    Object ctx)
{
  getChildren(path, watch ? watchManager.defaultWatcher : null, cb, ctx);
}

代码示例来源:origin: apache/pulsar

@Override
public Iterable<String> getManagedLedgers() throws MetaStoreException {
  try {
    return zk.getChildren(prefixName, false);
  } catch (Exception e) {
    throw new MetaStoreException(e);
  }
}

代码示例来源:origin: apache/zookeeper

private void utestChildren(int port)
  throws IOException, InterruptedException, KeeperException
{
  ZooKeeper zk =
    new ZooKeeper("127.0.0.1:" + port, CONNECTION_TIMEOUT, this);
  for (int i = 0; i < 10000; i++) {
    zk.getChildren("/" + i, true);
  }
  zk.close();
}

代码示例来源:origin: apache/ignite

/**
 * @param path Path.
 * @param watcher Watcher.
 * @param cb Callback.
 */
void getChildrenAsync(String path, Watcher watcher, AsyncCallback.Children2Callback cb) {
  GetChildrenOperation op = new GetChildrenOperation(path, watcher, cb);
  zk.getChildren(path, watcher, new ChildrenCallbackWrapper(op), null);
}

代码示例来源:origin: apache/incubator-druid

private void waitForOneWorkerToHaveUnackedTasks() throws Exception
{
 while (remoteTaskRunner.getWorkersWithUnacknowledgedTask().size() < 1) {
  Thread.sleep(5);
 }
 ZooKeeper zk = rtrTestUtils.getCuratorFramework().getZookeeperClient().getZooKeeper();
 while (zk.getChildren(rtrTestUtils.tasksPath + "/worker0", false).size() < 1
     && zk.getChildren(rtrTestUtils.tasksPath + "/worker1", false).size() < 1) {
  Thread.sleep(5);
 }
}

代码示例来源:origin: apache/incubator-druid

private void waitForBothWorkersToHaveUnackedTasks() throws Exception
 {
  while (remoteTaskRunner.getWorkersWithUnacknowledgedTask().size() < 2) {
   Thread.sleep(5);
  }

  ZooKeeper zk = rtrTestUtils.getCuratorFramework().getZookeeperClient().getZooKeeper();
  while (zk.getChildren(rtrTestUtils.tasksPath + "/worker0", false).size() < 1
      || zk.getChildren(rtrTestUtils.tasksPath + "/worker1", false).size() < 1) {
   Thread.sleep(5);
  }
 }
}

代码示例来源:origin: twitter/distributedlog

private void doWatchNamespaceChanges() {
  try {
    zkc.get().getChildren(uri.getPath(), this, this, null);
  } catch (ZooKeeperClient.ZooKeeperConnectionException e) {
    scheduleTask(this, conf.getZKSessionTimeoutMilliseconds());
  } catch (InterruptedException e) {
    logger.warn("Interrupted on watching namespace changes for {} : ", uri, e);
    scheduleTask(this, conf.getZKSessionTimeoutMilliseconds());
  }
}

代码示例来源:origin: twitter/distributedlog

private static List<String> getLockWaiters(ZooKeeperClient zkc, String lockPath) throws Exception {
  List<String> children = zkc.get().getChildren(lockPath, false);
  Collections.sort(children, ZKSessionLock.MEMBER_COMPARATOR);
  return children;
}

代码示例来源:origin: twitter/distributedlog

private static List<String> getLockWaiters(ZooKeeperClient zkc, String lockPath) throws Exception {
  List<String> children = zkc.get().getChildren(lockPath, false);
  Collections.sort(children, ZKSessionLock.MEMBER_COMPARATOR);
  return children;
}

代码示例来源:origin: apache/zookeeper

@Override
public void verify() {
  zk.getChildren(path, false, this, toString());
  super.verify();
}

代码示例来源:origin: apache/zookeeper

@Override
public void verify() {
  zk.getChildren(path, false, this, toString());
  super.verify();
}

代码示例来源:origin: twitter/distributedlog

public static Map<Long, LogSegmentMetadata> readLogSegments(ZooKeeperClient zkc, String ledgerPath) throws Exception {
  List<String> children = zkc.get().getChildren(ledgerPath, false);
  LOG.info("Children under {} : {}", ledgerPath, children);
  Map<Long, LogSegmentMetadata> segments =
    new HashMap<Long, LogSegmentMetadata>(children.size());
  for (String child : children) {
    LogSegmentMetadata segment =
        FutureUtils.result(LogSegmentMetadata.read(zkc, ledgerPath + "/" + child));
    LOG.info("Read segment {} : {}", child, segment);
    segments.put(segment.getLogSegmentSequenceNumber(), segment);
  }
  return segments;
}

代码示例来源:origin: apache/zookeeper

public void preAuth() throws Exception {
  ZooKeeper zk = createClient();
  zk.addAuthInfo("key", "25".getBytes());
  try {
    createNodePrintAcl(zk, "/pre", "testPreAuth");
    zk.setACL("/", Ids.CREATOR_ALL_ACL, -1);
    zk.getChildren("/", false);
    zk.create("/abc", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT);
    zk.setData("/abc", "testData1".getBytes(), -1);
    zk.create("/key", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT);
    zk.setData("/key", "5".getBytes(), -1);
    Thread.sleep(1000);
  } catch (KeeperException e) {
    Assert.fail("test failed :" + e);
  } finally {
    zk.close();
  }
}

代码示例来源:origin: twitter/distributedlog

Future<List<String>> getLogSegmentNames(String logSegmentsPath, Watcher watcher) {
  Promise<List<String>> result = new Promise<List<String>>();
  try {
    zkc.get().getChildren(logSegmentsPath, watcher, this, result);
  } catch (ZooKeeperClient.ZooKeeperConnectionException e) {
    result.setException(FutureUtils.zkException(e, logSegmentsPath));
  } catch (InterruptedException e) {
    result.setException(FutureUtils.zkException(e, logSegmentsPath));
  }
  return result;
}

代码示例来源:origin: apache/zookeeper

@Test
  public void testNodeChildrenChanged() throws Exception {
    String path = "/test-children-changed";

    zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
        CreateMode.PERSISTENT);
    zk1.getChildren(path, watcher);
    qu.shutdown(1);
    zk2.create(path + "/children-1", new byte[2],
        ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    qu.start(1);
    watcher.waitForConnected(TIMEOUT * 1000L);
    watcher.assertEvent(TIMEOUT, EventType.NodeChildrenChanged);
  }
}

代码示例来源:origin: apache/zookeeper

@Test
public void testWatchesTriggered() throws KeeperException, InterruptedException {
  HasTriggeredWatcher watcher = new HasTriggeredWatcher();
  zk.getChildren("/", watcher);
  multi(zk, Arrays.asList(
      Op.create("/t", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
      Op.delete("/t", -1)
  ));
  assertTrue(watcher.triggered.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS));
}

代码示例来源:origin: twitter/distributedlog

@Test(timeout = 60000)
public void testAclPermsZkAccessNoConflict() throws Exception {
  String namespace = "/" + runtime.getMethodName();
  initDlogMeta(namespace, "test-un", "test-stream");
  URI uri = createDLMURI(namespace);
  ZooKeeperClient zkc = TestZooKeeperClientBuilder.newBuilder()
    .name("unpriv")
    .uri(uri)
    .build();
  zkc.get().getChildren(uri.getPath() + "/test-stream", false, new Stat());
  zkc.get().getData(uri.getPath() + "/test-stream", false, new Stat());
}

代码示例来源:origin: twitter/distributedlog

private void rmAll(ZooKeeperClient client, String path) throws Exception {
  List<String> nodes = client.get().getChildren(path, false);
  for (String node : nodes) {
    String childPath = path + "/" + node;
    rmAll(client, childPath);
  }
  client.get().delete(path, 0);
}

代码示例来源:origin: apache/zookeeper

@Test
public void testNoWatchesTriggeredForFailedMultiRequest() throws InterruptedException, KeeperException {
  HasTriggeredWatcher watcher = new HasTriggeredWatcher();
  zk.getChildren("/", watcher);
  try {
    multi(zk, Arrays.asList(
        Op.create("/t", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
        Op.delete("/nonexisting", -1)
    ));
    fail("expected previous multi op to fail!");
  } catch (KeeperException.NoNodeException e) {
    // expected
  }
  SyncCallback cb = new SyncCallback();
  zk.sync("/", cb, null);
  // by waiting for the callback we're assured that the event queue is flushed
  cb.done.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS);
  assertEquals(1, watcher.triggered.getCount());
}

相关文章