gpt4 book ai didi

com.spotify.helios.servicescommon.coordination.ZooKeeperClient.ensurePath()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-19 03:23:31 26 4
gpt4 key购买 nike

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

ZooKeeperClient.ensurePath介绍

[英]Ensure a path exists. Any node in the path that does not exist will be created. If the base of the path does not exist it will be created with the supplied data.
[中]确保路径存在。将创建路径中不存在的任何节点。如果路径的基础不存在,将使用提供的数据创建它。

代码示例

代码示例来源:origin: spotify/helios

@Override
public void ensurePath(String path) throws KeeperException {
 reporter.time(tag, "ensurePath", () -> {
  client.ensurePath(path);
  return null;
 });
}

代码示例来源:origin: spotify/helios

@Override
public void ensurePath(String path, boolean excludingLast) throws KeeperException {
 reporter.time(tag, "ensurePath", () -> {
  client.ensurePath(path, excludingLast);
  return null;
 });
}

代码示例来源:origin: spotify/helios

public static void registerHost(final ZooKeeperClient client, final String idPath,
                final String hostname, final String hostId)
  throws KeeperException {
 log.info("registering host: {}", hostname);
 // This would've been nice to do in a transaction but PathChildrenCache ensures paths
 // so we can't know what paths already exist so assembling a suitable transaction is too
 // painful.
 client.ensurePath(Paths.configHost(hostname));
 client.ensurePath(Paths.configHostJobs(hostname));
 client.ensurePath(Paths.configHostPorts(hostname));
 client.ensurePath(Paths.statusHost(hostname));
 client.ensurePath(Paths.statusHostJobs(hostname));
 // Finish registration by creating the id node last
 client.createAndSetData(idPath, hostId.getBytes(UTF_8));
}

代码示例来源:origin: spotify/helios

@Override
 public boolean tryToRegister(final ZooKeeperClient client) throws KeeperException {

  client.ensurePath(Paths.configHosts());
  client.ensurePath(Paths.configJobs());
  client.ensurePath(Paths.configJobRefs());
  client.ensurePath(Paths.statusHosts());
  client.ensurePath(Paths.statusMasters());
  client.ensurePath(Paths.historyJobs());
  client.ensurePath(Paths.configDeploymentGroups());
  client.ensurePath(Paths.statusDeploymentGroups());

  if (upNode == null) {
   final String upPath = Paths.statusMasterUp(name);
   client.ensurePath(upPath, true);
   upNode = client.persistentEphemeralNode(upPath, Mode.EPHEMERAL, new byte[]{});
   upNode.start();
  }

  log.info("ZooKeeper registration complete");
  return true;
 }
}

代码示例来源:origin: spotify/helios

final String upPath = Paths.statusHostUp(name);
log.debug("Creating up node: {}", upPath);
client.ensurePath(upPath, true);
upNode = client.persistentEphemeralNode(upPath, EPHEMERAL, EMPTY_BYTES);
upNode.start();

代码示例来源:origin: spotify/helios

final ZooKeeperClient client = provider.get("removeDeploymentGroup");
try {
 client.ensurePath(Paths.configDeploymentGroups());
 client.ensurePath(Paths.statusDeploymentGroups());
 client.ensurePath(Paths.statusDeploymentGroupTasks());

代码示例来源:origin: spotify/helios

@Test
public void testZooKeeperClient() throws Exception {
 // Create the cluster ID node
 zk().curatorWithSuperAuth().newNamespaceAwareEnsurePath(Paths.configId(zkClusterId))
   .ensure(zk().curatorWithSuperAuth().getZookeeperClient());
 // We need to create a new curator because ZooKeeperClient will try to start it,
 // and zk().curator() has already been started.
 final ExponentialBackoffRetry retryPolicy = new ExponentialBackoffRetry(1000, 3);
 final CuratorFramework curator = CuratorFrameworkFactory.builder()
   .retryPolicy(retryPolicy)
   .connectString(zk().connectString())
   .build();
 final ZooKeeperClient client = new DefaultZooKeeperClient(curator, zkClusterId);
 client.start();
 // This should work since the cluster ID exists
 client.create("/test");
 // Now let's remove the cluster ID
 client.delete(Paths.configId(zkClusterId));
 // Sleep so the watcher thread in ZooKeeperClient has a chance to update state
 Thread.sleep(500);
 // Try the same operation again, and it should fail this time
 try {
  client.ensurePath(Paths.configJobs());
  fail("ZooKeeper operation should have failed because cluster ID was removed");
 } catch (IllegalStateException ignore) {
  // ignored
 }
}

代码示例来源:origin: spotify/helios

client.ensurePath(Paths.statusDeploymentGroupTasks());

代码示例来源:origin: spotify/helios

public RollingUpdateOp start(final DeploymentGroup deploymentGroup,
               final ZooKeeperClient client) throws KeeperException {
 client.ensurePath(Paths.statusDeploymentGroupTasks());

代码示例来源:origin: spotify/helios

item.getTimestamp());
client.ensurePath(historyPath, true);
client.createAndSetData(historyPath, item.getStatus().toJsonBytes());

代码示例来源:origin: spotify/helios

client.ensurePath(Paths.configDeploymentGroups());
client.ensurePath(Paths.statusDeploymentGroups());
client.transaction(
  create(Paths.configDeploymentGroup(deploymentGroup.getName()), deploymentGroup),

代码示例来源:origin: spotify/helios

try {
 try {
  client.ensurePath(Paths.historyJob(id));
  client.transaction(create(Paths.configJob(id), job),
    create(Paths.configJobRefShort(id), id),

代码示例来源:origin: at.molindo/helios-services

@Override
public void ensurePath(String path) throws KeeperException {
 try {
  client.ensurePath(path);
 } catch (KeeperException e) {
  reporter.checkException(e, tag, "ensurePath");
  throw e;
 }
}

代码示例来源:origin: at.molindo/helios-services

@Override
public void ensurePath(String path, boolean excludingLast) throws KeeperException {
 try {
  client.ensurePath(path, excludingLast);
 } catch (KeeperException e) {
  reporter.checkException(e, tag, "ensurePath");
  throw e;
 }
}

代码示例来源:origin: at.molindo/helios-services

@Override
 public void tryToRegister(final ZooKeeperClient client) throws KeeperException {

  client.ensurePath(Paths.configHosts());
  client.ensurePath(Paths.configJobs());
  client.ensurePath(Paths.configJobRefs());
  client.ensurePath(Paths.statusHosts());
  client.ensurePath(Paths.statusMasters());
  client.ensurePath(Paths.historyJobs());
  client.ensurePath(Paths.configDeploymentGroups());
  client.ensurePath(Paths.statusDeploymentGroups());

  if (upNode == null) {
   final String upPath = Paths.statusMasterUp(name);
   upNode = client.persistentEphemeralNode(upPath, Mode.EPHEMERAL, new byte[]{});
   upNode.start();
  }

  log.info("ZooKeeper registration complete");
 }
}

代码示例来源:origin: at.molindo/helios-services

/**
 * Registers a host into ZooKeeper.  The {@code id} is initially generated randomly by the Agent
 * and persisted on disk.  This way, in the event that you have two agents attempting to register
 * with the same value of @{code host}, the first one will win.
 */
@Override
public void registerHost(final String host, final String id) {
 log.info("registering host: {}", host);
 final ZooKeeperClient client = provider.get("registerHost");
 try {
  // TODO (dano): this code is replicated in AgentZooKeeperRegistrar
  // This would've been nice to do in a transaction but PathChildrenCache ensures paths
  // so we can't know what paths already exist so assembling a suitable transaction is too
  // painful.
  client.ensurePath(Paths.configHost(host));
  client.ensurePath(Paths.configHostJobs(host));
  client.ensurePath(Paths.configHostPorts(host));
  client.ensurePath(Paths.statusHost(host));
  client.ensurePath(Paths.statusHostJobs(host));
  // Finish registration by creating the id node last
  client.createAndSetData(Paths.configHostId(host), id.getBytes(UTF_8));
 } catch (Exception e) {
  throw new HeliosRuntimeException("registering host " + host + " failed", e);
 }
}

代码示例来源:origin: at.molindo/helios-services

private boolean tryWriteToZooKeeper(TEvent event) {
 final String eventsPath = getZkEventsPath(event);
 try {
  log.debug("writing queued event to zookeeper {} {}", getKey(event),
       getTimestamp(event));
  client.ensurePath(eventsPath);
  client.createAndSetData(getZkEventPath(eventsPath, getTimestamp(event)), toBytes(event));
  // See if too many
  final List<String> events = client.getChildren(eventsPath);
  if (events.size() > getMaxEventsPerPath()) {
   trimStatusEvents(events, eventsPath);
  }
 } catch (NodeExistsException e) {
  // Ahh, the two generals problem...  We handle by doing nothing since the thing
  // we wanted in, is in.
  log.debug("event we wanted in is already there");
 } catch (ConnectionLossException e) {
  log.warn("Connection lost while putting event into zookeeper, will retry");
  return false;
 } catch (KeeperException e) {
  log.error("Error putting event into zookeeper, will retry", e);
  return false;
 }
 return true;
}

代码示例来源:origin: at.molindo/helios-services

@Override
public void addDeploymentGroup(final DeploymentGroup deploymentGroup)
  throws DeploymentGroupExistsException {
 log.info("adding deployment-group: {}", deploymentGroup);
 final ZooKeeperClient client = provider.get("addDeploymentGroup");
 try {
  try {
   client.ensurePath(Paths.configDeploymentGroups());
   client.ensurePath(Paths.statusDeploymentGroups());
   client.transaction(
     create(Paths.configDeploymentGroup(deploymentGroup.getName()), deploymentGroup),
     create(Paths.statusDeploymentGroup(deploymentGroup.getName())),
     create(Paths.statusDeploymentGroupHosts(deploymentGroup.getName()))
    );
  } catch (final NodeExistsException e) {
   throw new DeploymentGroupExistsException(deploymentGroup.getName());
  }
 } catch (final KeeperException e) {
  throw new HeliosRuntimeException("adding deployment-group " + deploymentGroup + " failed", e);
 }
}

代码示例来源:origin: at.molindo/helios-services

@Override
public void stopDeploymentGroup(final String deploymentGroupName)
  throws DeploymentGroupDoesNotExistException {
 checkNotNull(deploymentGroupName, "name");
 log.info("stop deployment-group: name={}", deploymentGroupName);
 final ZooKeeperClient client = provider.get("stopDeploymentGroup");
 final DeploymentGroup deploymentGroup = getDeploymentGroup(deploymentGroupName);
 final String statusPath = Paths.statusDeploymentGroup(deploymentGroupName);
 final DeploymentGroupStatus status = DeploymentGroupStatus.newBuilder()
   .setDeploymentGroup(deploymentGroup)
   .setState(FAILED)
   .setError("Stopped by user")
   .build();
 try {
  client.ensurePath(statusPath);
  client.transaction(set(statusPath, status));
 } catch (final NoNodeException e) {
  throw new DeploymentGroupDoesNotExistException(deploymentGroupName);
 } catch (final KeeperException e) {
  throw new HeliosRuntimeException(
    "stop deployment-group " + deploymentGroupName + " failed", e);
 }
}

代码示例来源:origin: at.molindo/helios-services

@Override
public void removeDeploymentGroup(final String name) throws DeploymentGroupDoesNotExistException {
 log.info("removing deployment-group: name={}", name);
 final ZooKeeperClient client = provider.get("removeDeploymentGroup");
 try {
  client.ensurePath(Paths.configDeploymentGroups());
  client.delete(Paths.configDeploymentGroup(name));
  if (client.exists(Paths.statusDeploymentGroupHosts(name)) != null) {
   client.delete(Paths.statusDeploymentGroupHosts(name));
  }
  if (client.exists(Paths.statusDeploymentGroup(name)) != null) {
   client.delete(Paths.statusDeploymentGroup(name));
  }
 } catch (final NoNodeException e) {
  throw new DeploymentGroupDoesNotExistException(name);
 } catch (final KeeperException e) {
  throw new HeliosRuntimeException("removing deployment-group " + name + " failed", e);
 }
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com