Zookeeper .Net客户端代码
本来此客户端可以通过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的变化以及处理。
- 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);
- }
- }
- }
- }
Zookeeper .Net客户端代码相关推荐
- Zookeeper开源客户端框架Curator的简单使用
为什么80%的码农都做不了架构师?>>> Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用Z ...
- [转载]Zookeeper开源客户端框架Curator简介
转载声明:http://macrochen.iteye.com/blog/1366136 Zookeeper开源客户端框架Curator简介 博客分类: Distributed Open Source ...
- Zookeeper 原生客户端、可视化工具 ZooInspector 、Apache Curator
目录 Zookeeper 原生客户端 Apache Curator 开源客户端 可视化客户端工具 ZooInspector Zookeeper 原生客户端 1.类似 Redis 有多种 Java 客户 ...
- zookeeper开源客户端Curator介绍(六)
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/82872311 ©王赛超 上一篇文章 介绍了zookeepe ...
- zookeeper curator客户端之增删改查
zookeeper curator客户端之增删改查 zookeeper安装:https://www.cnblogs.com/zwcry/p/10272506.html curator客户端是Apach ...
- 用MyEclipse自带工具生成WebService客户端代码
本文章主要是介绍如何利用已经发布了的Webservice的wsdl来自动生成java的客户端代码.注意:本方法需要你采用的java版本是1.5或者以上的版本,采用MyEclipse来自动生成代码. w ...
- cxf生成客户端代码
2019独角兽企业重金招聘Python工程师标准>>> 1.首先从下载cxf组件 我这里下载的是3.0.4的,下载完成后解压. http://cxf.apache.org/dow ...
- wsdl2java 工具下载_利用wsdl2java工具生成webservice的客户端代码
1.JDK环境 2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME, ...
- 【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )
文章目录 一. Netty 模型代码解析 二. Netty 案例服务器端代码 1 . 服务器主程序 2 . 服务器自定义 Handler 处理者 三. Netty 案例客户端代码 1 . 客户端主程序 ...
最新文章
- vue引用js文件的多种方式
- 罗杰·科恩伯格:基础科学——人类进步的希望
- DataSnap 2009 系列之二 (方法篇)
- Python计算机视觉:第二章 图像局部描述符
- js 字符串截取 获取固定标识字段
- java 中的单引号报错_shell中的单引号,双引号,反引号
- 一道面试题:猫大叫了一声...
- [IDDFS+背包] 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
- 钉钉微应用怎么进入_海目星激光张荣:激光焊接在锂电池生产应用中越来越多...
- win10系统如何打开telnet服务器,win10系统安装并开启Telnet服务的处理步骤
- 需要点智商才能看懂的恐怖故事,你能看懂多少个?
- Maximo 密码加密传送
- 2020-09-06
- 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
- windows设置某应用开机自启
- vulnhub靶机-djinn2
- python-networkx库的使用1
- 移动设备与操作系统多样性将扩大网络犯罪空间
- Django之爱鲜蜂项目开发 day03 (二)
- mysql mklink_windows系统下的文件夹链接功能mklink/linkd
热门文章
- OpenCV使用Facemark API
- OpenGL text rendering文字渲染的实例
- OpenGL Assimp模型加载库
- C++KMP算法字符串匹配(附完整源码)
- C++以字符串形式返回第N个斐波那契的算法(附完整源码)
- C语言实现二叉树(附完整源码)
- C++不能简单地将整数赋给指针
- 经典C语言程序100例之十四
- 经典C语言程序100例之一
- linux重新加载php.ini,linux修改php.ini后重新加载配置文件命令