Zookeeper .Net客户端代码

通过C#代码使用zookeeper

Zookeeper的使用主要是通过创建其Nuget ZooKeeperNet包下的Zookeeper实例,并且调用其接口方法进行

的,主要的操作就是对znode的增删改操作,监听znode的变化以及处理。

c# 代码  
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using ZooKeeperNet;  
  6.   
  7. namespace ZookeeperDemo  
  8. {  
  9.     class Watcher : IWatcher  
  10.     {  
  11.         public void Process(WatchedEvent @event)  
  12.         {  
  13.             if (@event.Type == EventType.NodeDataChanged)  
  14.             {  
  15.                 Console.WriteLine(@event.Path);  
  16.             }  
  17.         }  
  18.     }  
  19. }  
  20.   
  21. using System;  
  22. using System.Collections.Generic;  
  23. using System.Linq;  
  24. using System.Text;  
  25. using ZooKeeperNet;  
  26.   
  27. namespace ZookeeperDemo  
  28. {  
  29.     class Program  
  30.     {  
  31.         static void Main(string[] args)  
  32.         {  
  33.   
  34.             //创建一个Zookeeper实例,第一个参数为目标服务器地址和端口,第二个参数为Session超时时间,第三个为节点变化时的回调方法   
  35.             using (ZooKeeper zk = new ZooKeeper("127.0.0.1:2181"new TimeSpan(00050000), new Watcher()))  
  36.             {  
  37.                 var stat = zk.Exists("/root",true);  
  38.                    
  39.                 创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失)   
  40.                 //zk.Create("/root", "mydata".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);  
  41.   
  42.                 //在root下面创建一个childone znode,数据为childone,不进行ACL权限控制,节点为永久性的   
  43.                 zk.Create("/root/childone""childone".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);  
  44.                 //取得/root节点下的子节点名称,返回List<String>   
  45.                 zk.GetChildren("/root"true);  
  46.                 //取得/root/childone节点下的数据,返回byte[]   
  47.                 zk.GetData("/root/childone"truenull);  
  48.   
  49.                 //修改节点/root/childone下的数据,第三个参数为版本,如果是-1,那会无视被修改的数据版本,直接改掉  
  50.                 zk.SetData("/root/childone""childonemodify".GetBytes(), -1);  
  51.                 //删除/root/childone这个节点,第二个参数为版本,-1的话直接删除,无视版本   
  52.                 zk.Delete("/root/childone", -1);  
  53.             }  
  54.   
  55.         }  
  56.     }  
  57. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

random_2011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值