本来此客户端可以通过NuGet获取,如果会使用NuGet, 则可以使用命令Install-Package ZooKeeperNet(需要最新版本的NuGet)
如果不会,就去 NuGet官网了解http://docs.nuget.org/docs/start-here/using-the-package-manager-console
如果你想自己编译 你可以去GitHub下载源码https://github.com/ewhauser/zookeeper
donet编译时会报出Genrated里的文件无法打开,实际上刚开始是没有的;
最后在网上查了很多资料和源码里的说明文档
ewhauser-zookeeper-a52ff80\src\java\main\org\apache\jute\package.html
ewhauser-zookeeper-a52ff80\src\java\main\org\apache\jute\compiler\package.html,
 原来是hadoop的Rcc(是用JAVA编写的 源文件中可以找到),这个东西作用是src下的zookeeper.jute文件转换为C C++ java的数据结构 好像原来是没有C#的,是后来作者加上的,这里就先不管了,可以用就行,接下来说说怎么生成 ewhauser-zookeeper-a52ff80\src\dotnet\ZooKeeperNet\Generated的文件
我们需要运行ant命令
如果不知道ant,那google把
配置好ant 后 运行
ant -file build.xml

这样运行后等待build successfully  你的ewhauser-zookeeper-a52ff80\src\dotnet\ZooKeeperNet\Generated就有文件了
现在就能将zookeeperNet编译为Dll了
我编译的时候发现有MiscUtil.dll不存在的警告 ,所以我还是去把这个dll下载了下来
注意这个客户端必须要用.NET4.0编译
 以下整理过的donet的源文件包,大家参考使用

通过C#代码使用zookeeper

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ZooKeeperNet;namespace ZookeeperDemo
{class Watcher : IWatcher{public void Process(WatchedEvent @event){if (@event.Type == EventType.NodeDataChanged){Console.WriteLine(@event.Path);}}}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ZooKeeperNet;namespace ZookeeperDemo
{class Program{static void Main(string[] args){//创建一个Zookeeper实例,第一个参数为目标服务器地址和端口,第二个参数为Session超时时间,第三个为节点变化时的回调方法 using (ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", new TimeSpan(0, 0, 0, 50000), new Watcher())){var stat = zk.Exists("/root",true);创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失) //zk.Create("/root", "mydata".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);//在root下面创建一个childone znode,数据为childone,不进行ACL权限控制,节点为永久性的 zk.Create("/root/childone", "childone".GetBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.Persistent);//取得/root节点下的子节点名称,返回List<String> zk.GetChildren("/root", true);//取得/root/childone节点下的数据,返回byte[] zk.GetData("/root/childone", true, null);//修改节点/root/childone下的数据,第三个参数为版本,如果是-1,那会无视被修改的数据版本,直接改掉zk.SetData("/root/childone", "childonemodify".GetBytes(), -1);//删除/root/childone这个节点,第二个参数为版本,-1的话直接删除,无视版本 zk.Delete("/root/childone", -1);}}}
}

本来此客户端可以通过NuGet获取,如果会使用NuGet, 则可以使用命令Install-Package ZooKeeperNet(需要最新版本的NuGet)
如果不会,就去 NuGet官网了解http://docs.nuget.org/docs/start-here/using-the-package-manager-console
如果你想自己编译 你可以去GitHub下载源码https://github.com/ewhauser/zookeeper
donet编译时会报出Genrated里的文件无法打开,实际上刚开始是没有的;
最后在网上查了很多资料和源码里的说明文档
ewhauser-zookeeper-a52ff80\src\java\main\org\apache\jute\package.html
ewhauser-zookeeper-a52ff80\src\java\main\org\apache\jute\compiler\package.html,
 原来是hadoop的Rcc(是用JAVA编写的 源文件中可以找到),这个东西作用是src下的zookeeper.jute文件转换为C C++ java的数据结构 好像原来是没有C#的,是后来作者加上的,这里就先不管了,可以用就行,接下来说说怎么生成 ewhauser-zookeeper-a52ff80\src\dotnet\ZooKeeperNet\Generated的文件
我们需要运行ant命令
如果不知道ant,那google把
配置好ant 后 运行
ant -file build.xml

这样运行后等待build successfully  你的ewhauser-zookeeper-a52ff80\src\dotnet\ZooKeeperNet\Generated就有文件了
现在就能将zookeeperNet编译为Dll了
我编译的时候发现有MiscUtil.dll不存在的警告 ,所以我还是去把这个dll下载了下来
注意这个客户端必须要用.NET4.0编译
 以下整理过的donet的源文件包,大家参考使用

通过C#代码使用zookeeper

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

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

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

Zookeeper .Net客户端代码相关推荐

  1. Zookeeper开源客户端框架Curator的简单使用

    为什么80%的码农都做不了架构师?>>>    Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用Z ...

  2. [转载]Zookeeper开源客户端框架Curator简介

    转载声明:http://macrochen.iteye.com/blog/1366136 Zookeeper开源客户端框架Curator简介 博客分类: Distributed Open Source ...

  3. Zookeeper 原生客户端、可视化工具 ZooInspector 、Apache Curator

    目录 Zookeeper 原生客户端 Apache Curator 开源客户端 可视化客户端工具 ZooInspector Zookeeper 原生客户端 1.类似 Redis 有多种 Java 客户 ...

  4. zookeeper开源客户端Curator介绍(六)

    原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/82872311     ©王赛超  上一篇文章 介绍了zookeepe ...

  5. zookeeper curator客户端之增删改查

    zookeeper curator客户端之增删改查 zookeeper安装:https://www.cnblogs.com/zwcry/p/10272506.html curator客户端是Apach ...

  6. 用MyEclipse自带工具生成WebService客户端代码

    本文章主要是介绍如何利用已经发布了的Webservice的wsdl来自动生成java的客户端代码.注意:本方法需要你采用的java版本是1.5或者以上的版本,采用MyEclipse来自动生成代码. w ...

  7. cxf生成客户端代码

    2019独角兽企业重金招聘Python工程师标准>>> 1.首先从下载cxf组件   我这里下载的是3.0.4的,下载完成后解压. http://cxf.apache.org/dow ...

  8. wsdl2java 工具下载_利用wsdl2java工具生成webservice的客户端代码

    1.JDK环境 2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME, ...

  9. 【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )

    文章目录 一. Netty 模型代码解析 二. Netty 案例服务器端代码 1 . 服务器主程序 2 . 服务器自定义 Handler 处理者 三. Netty 案例客户端代码 1 . 客户端主程序 ...

最新文章

  1. vue引用js文件的多种方式
  2. 罗杰·科恩伯格:基础科学——人类进步的希望
  3. DataSnap 2009 系列之二 (方法篇)
  4. Python计算机视觉:第二章 图像局部描述符
  5. js 字符串截取 获取固定标识字段
  6. java 中的单引号报错_shell中的单引号,双引号,反引号
  7. 一道面试题:猫大叫了一声...
  8. [IDDFS+背包] 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
  9. 钉钉微应用怎么进入_海目星激光张荣:激光焊接在锂电池生产应用中越来越多...
  10. win10系统如何打开telnet服务器,win10系统安装并开启Telnet服务的处理步骤
  11. 需要点智商才能看懂的恐怖故事,你能看懂多少个?
  12. Maximo 密码加密传送
  13. 2020-09-06
  14. 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
  15. windows设置某应用开机自启
  16. vulnhub靶机-djinn2
  17. python-networkx库的使用1
  18. 移动设备与操作系统多样性将扩大网络犯罪空间
  19. Django之爱鲜蜂项目开发 day03 (二)
  20. mysql mklink_windows系统下的文件夹链接功能mklink/linkd

热门文章

  1. OpenCV使用Facemark API
  2. OpenGL text rendering文字渲染的实例
  3. OpenGL Assimp模型加载库
  4. C++KMP算法字符串匹配(附完整源码)
  5. C++以字符串形式返回第N个斐波那契的算法(附完整源码)
  6. C语言实现二叉树(附完整源码)
  7. C++不能简单地将整数赋给指针
  8. 经典C语言程序100例之十四
  9. 经典C语言程序100例之一
  10. linux重新加载php.ini,linux修改php.ini后重新加载配置文件命令