Пример #1
0
 /// <summary>
 /// 添加或者设置data
 /// </summary>
 /// <param name="zkPath"></param>
 /// <param name="data"></param>
 public void AddOrSetData(string zkPath, byte[] data)
 {
     _queue.Enqueue(() =>
     {
         var stat = ZooKeeper.Exists(zkPath, false);
         if (stat != null)
         {
             //先删除子节点,再更新值保证不会出现客户端已经更新完并新增了节点,而服务端还没删完的情况
             ZooKeeper.RemoveTmpChildNode(zkPath);
             ZooKeeper.SetData(zkPath, data, -1);
         }
         else
         {
             ZooKeeper.CreateWithPath(zkPath, data, Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);
         }
     });
 }