• 7.使用ZookeeperNet进行CDU操作参数详解


    一、创建,删除,更新
    1. zkCli.sh 中使用命令执行。
    2. 学会查看api文档
      zookeeper C# driver 官方文档,文档是java代码的。
     
    3. create操作中 各个参数的作用
      create 中可能抛出的异常(常见的三个异常):
      1. create /ctrip ,如果ctrip已经存在,就会抛出异常。
      2. create /ctrip/train , 如果说ctrip不存在,就会抛异常。
      3. create /ctrip/train , 如果说 ctrip是临时节点,要创建一个永久的train(永久),就会抛异常。
      4. znode数据的最大容量是,1MB
     
    二、创建节点
                ZooKeeper zookeeper = new ZooKeeper("192.168.84.136:2181/datamip", TimeSpan.FromSeconds(5),new ZookeeperWatcher());
    
                //通过wait函数,等待ZookeeperWatcher 回调函数执行成功
                ZookeeperWatcher.countdownEvent.Wait();
                var list = zookeeper.GetChildren("/", false);
                var path = string.Empty;
                try
                {
                    //添加节点
                    path = zookeeper.Create("/v1dragon", Encoding.UTF8.GetBytes("helloworld"), 
                        Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent); //持久的节点
    
                    //CreateMode.Persistent; 持久的节点
                    //CreateMode.EphemeralSequential; 临时顺序节点
                    //CreateMode.PersistentSequential; 持久顺序节点
                }
                catch (KeeperException ex)
                {
                    throw new Exception(ex.Message);
                }

    创建成功
     
    三、 删除节点
     
    1. version 基于CAS的删除,还是强制删除。
    2. delete 可能会有三种异常:
    a. NoNode , 没有该节点
    b. BadVersion, 错误的版本好
    c. NotEmpty, 如果删除的父节点,下面有子节点,是不能被删除的。
    递归删除 【stat numChildren: 标识是否有子节点】
      var path = string.Empty;
                try
                {//删除节点
                    //先查询vdragon节点数据
                    Stat stat = new Stat();
                    zookeeper.GetData("/vdragon", false, stat);
                    //获取节点版本号
                    zookeeper.Delete("/vdragon", stat.Version); 
                }
                catch (KeeperException ex)
                {
                    throw new Exception(ex.Message);
                }

    节点被删除
     
     
    四、更新节点
    1. update可能抛出的异常
    a. NoNode , 没有该节点
    b. BadVersion, 错误的版本好
    c. 数据不能超过1MB
     
      var path = string.Empty;
                try
                { 
                    Stat stat = new Stat(); 
    //修改节点 stat = zookeeper.SetData("/v1dragon", Encoding.UTF8.GetBytes("helloworlddragon"), -1); } catch (KeeperException ex) { throw new Exception(ex.Message); }

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    C#的委托
    解决.net core3.1使用docker部署在Ubuntu上连接sqlserver报error:35的问题
    【WPF学习】第三十六章 样式基础
    asp.net core 3.x 身份验证-3cookie身份验证原理
    C#设计模式学习笔记:(9)组合模式
    Asp.net Core MVC(三)UseMvc设置路由
    C#后台异步消息队列实现
    ASP.NET CORE 内置的IOC解读及使用
    VS2015发布WEB项目
    C#的冒泡排序
  • 原文地址:https://www.cnblogs.com/dragon-L/p/8563723.html
Copyright © 2020-2023  润新知