// 添加节点
  public void insert(HttpServletRequest request, HttpServletResponse response) {
    String current_path = "";
    String falg = "success";

    // 当前添加节点所有上级目录
    String insert_old_current_path = request.getParameter("insert_old_current_path");
    // 当前添加节点名称
    String insert_current_path = request.getParameter("insert_current_path");

    current_path = insert_old_current_path + "/" + insert_current_path;

    // 当前添加节点的数据
    String insert_current_path_data = request.getParameter("insert_current_path_data");
    LogUtils.logInfo("当前 添加 节点 :[ " + current_path + " ] 的数据为 :" + insert_current_path_data);
    if (!zkClient.exists(current_path)) {
      zkClient.createPersistent(current_path, ZkClient.toBytes(insert_current_path_data));
    }
    ResponseUtils.responseOutWithJson(response, falg);
  }
  // 更新节点数据
  @SuppressWarnings("static-access")
  public void update(HttpServletRequest request, HttpServletResponse response) {

    final AtomicInteger count = new AtomicInteger(0);
    final ArrayList<String> children = new ArrayList<String>();

    String falg = "success";
    // 当前修改节点名称
    String update_current_path = request.getParameter("update_current_path");
    // 当前节点之前的数据
    String update_old_path_data = request.getParameter("update_old_path_data");
    // 当前修改数据
    String update_path_data = request.getParameter("update_path_data");
    // 如果相等于 代表没有修改数据
    if (update_old_path_data.equals(update_path_data)) {
      ResponseUtils.responseOutWithJson(response, "no_update");
      return;
    } else {
      try {
        IZkChildListener listener =
            new IZkChildListener() {
              @Override
              public void handleChildChange(String parentPath, List<String> currentChildren)
                  throws Exception {
                count.incrementAndGet();
                children.clear();
                if (currentChildren != null) {
                  children.addAll(currentChildren);
                }
                LogUtils.logInfo("handle childchange " + parentPath + ", " + currentChildren);
              }
            };
        zkClient.subscribeChildChanges(update_current_path, listener);
        zkClient.writeData(update_current_path, zkClient.toBytes(update_path_data));
      } catch (Exception e) {
        falg = "fail";
        LogUtils.logError(
            "修改节点 : [ " + update_current_path + " ] 对应数据 : " + update_path_data + "失败 !", e);
      }
    }
    ResponseUtils.responseOutWithJson(response, falg);
  }