private OperationFuture<String> createLiveNode() {
    String liveNode = getLiveNodePath();
    LOG.info("Create live node {}{}", zkClient.getConnectString(), liveNode);

    JsonObject content = new JsonObject();
    content.add("data", liveNodeData.get());
    return ZKOperations.ignoreError(
        zkClient.create(liveNode, encodeJson(content), CreateMode.EPHEMERAL),
        KeeperException.NodeExistsException.class,
        liveNode);
  }
 private OperationFuture<String> removeServiceNode() {
   String serviceNode = String.format("/%s", id.getId());
   LOG.info("Remove service node {}{}", zkClient.getConnectString(), serviceNode);
   return ZKOperations.recursiveDelete(zkClient, serviceNode);
 }
 private OperationFuture<String> removeLiveNode() {
   String liveNode = getLiveNodePath();
   LOG.info("Remove live node {}{}", zkClient.getConnectString(), liveNode);
   return ZKOperations.ignoreError(
       zkClient.delete(liveNode), KeeperException.NoNodeException.class, liveNode);
 }