Zookeeper.NET Client (一)【自己编写客户端 连接实例】

Kafka 2.4.1 与 ZooKeeper 连接超时:3 类原因分析与排查路径 本文详细分析了Kafka 2.4.1与ZooKeeper连接超时的3类核心原因,包括网络连通性、ZooKeeper状态和Kafka配置问题,并提供了系统化的排查路径和深度解决方案,帮助开发者快速定位和解决连接超时问题。 阅读详情

首先zookeeper 压缩包 解压 并配置好!

我本机zookeeper环境配置如下:

D:\Worksoftware\ApacheZookeeper3\conf\zoo.cfg


我已经加了path环境变量,没加的话需要到zookeeper对应bin目录下执行zkServer

然后执行cmd命令:

启动成功后,我们开始C#编程:

首先项目解决方案如图:


接下来看Program.cs代码:

namespace ZKTEST
{
    class Program
    {
        static void Main(string[] args)
        {

            Client client = Zookeeper.CreateClient("zookeeper.local:2181");
            //输出相关服务配置的详细信息。
            string responseConf = client.FourCharacterCommand("conf").Result;
            //列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括“接受 / 发送”的包数量、会话 id 、操作延迟、最后的操作执行等等信息。
            string responseCons = client.FourCharacterCommand("cons").Result;
            //列出未经处理的会话和临时节点。
            string responseDump = client.FourCharacterCommand("dump").Result;
            //输出关于服务环境的详细信息(区别于 conf 命令)。
            string responseEnvi = client.FourCharacterCommand("envi").Result;
            //列出未经处理的请求
            string responseReqs = client.FourCharacterCommand("reqs").Result;
            //测试服务是否处于正确状态。如果确实如此,那么服务返回“imok”,否则不做任何相应。
            string responseRuok = client.FourCharacterCommand("ruok").Result;
            //输出关于性能和连接的客户端的列表。
            string responseStat = client.FourCharacterCommand("stat").Result;
            //列出服务器 watch 的详细信息。
            string responseWchs = client.FourCharacterCommand("wchs").Result;
            //通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
            string responseWchc = client.FourCharacterCommand("wchc").Result;
            //通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。
            string responseWchp = client.FourCharacterCommand("wchp").Result;

            Console.WriteLine(responseConf);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseCons);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseDump);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseEnvi);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseReqs);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseRuok);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseStat);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseWchs);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseWchc);
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine(responseWchp);
            Console.WriteLine("--------------------------------------------------");

            Console.ReadKey();
        }
    }
}

Client.cs代码如下:

namespace ZookeeperClient
{
    public class Client
    {
        readonly string connectionString;

        public Client(string connectionString)
        {
            this.connectionString = connectionString;
        }

        public Task<string> FourCharacterCommand(string cmd)
        {
            //四字命令
            var command = Encoding.ASCII.GetBytes(cmd);
           
            //打开原生客户端
            var tcp = OpenNativeClient(connectionString);
            var stream = tcp.GetStream();
            stream.Write(command, 0, command.Length);

            var data = new byte[1024];
            var reading = Task<int>.Factory.FromAsync(stream.BeginRead, stream.EndRead, data, 0, data.Length, null);

            return reading.ContinueWith(length =>
            {
                tcp.Close();
                if (length.Result < data.Length)
                {
                    Array.Resize(ref data, length.Result);
                }
                return new UTF8Encoding().GetString(data);
            });
        }


        static TcpClient OpenNativeClient(string connectionString)
        {
            var values = connectionString.Split(':');
            var hostname = values[0];
            var portnumber = values[1];
            return new TcpClient(hostname, int.Parse(portnumber));
        }
    }
}
Zookeeper.cs内容如下:

namespace ZookeeperClient
{
    public class Zookeeper
    {
        public static Client CreateClient(string connectionString)
        {
            return new Client(connectionString);
        }
    }
}
运行结果如图:





Windows下Canal部署踩坑实录:从MySQL配置到Java客户端连接的完整避坑指南 本文详细介绍了在Windows环境下部署Canal的全过程,从MySQL的binlog配置到Java客户端连接,提供了完整的避坑指南。重点解析了MySQL配置、Canal服务启动参数调优及Java客户端开发中的常见问题与解决方案,帮助开发者高效实现数据同步。 阅读详情

相关推荐

ZooKeeperNetDemo

使用zookeeper分布式锁,读取和写入共享资源Redis,测试高并发下,多个程序同时读取和写入Redis同一个键值数据

C#如何连接使用Zookeeper

Zookeeper作为分布式的服务框架,虽然是java写的,但是强大的C#也可以连接使用。C#要连接使用Zookeeper,需要借助第三方插件,而现在主要有两个插件可供使用,分别是ZooKeeper… Zookeeper作为分布式的服务框架,虽然是java写的,但是强大的C#也可以连接使用。 C#要连接使用Zookeeper,需要借助第三方插件,而现在主要有两个插件可供使用,分别是ZooKeeperNetEx和Zookeeper.Net Zookeeper.Net好像是是Apache官方提供的,但是5年.

极客神殿 1067

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 569

Zookeeper 客户端 .net访问框架 ZookeeperNetEx项目开发编译

该项目完全基于任务异步编程,兼容.NET 4.61+和.NET Core,代码逻辑与官方Java客户端高度一致,便于Java系统迁移

zhujisoft的专栏 605

从隐式求解器到显式求解器:COMSOL接触仿真中的求解策略对比与选择

本文深度解析了COMSOL中隐式与显式求解器在接触仿真中的应用与选择策略。针对非线性接触问题的核心挑战,详细对比了两种求解器的数学框架、优化技术及适用场景,并提供了参数调优和调试技巧,帮助工程师高效解决接触仿真中的收敛问题。

weixin_28347369的博客 682

独立站SaaS平台源码搭建全流程指南:从零到部署

一、什么是独立站SaaS?二、搭建前的准备工作技术选型建议模块 推荐方案 备选方案前端框架 React/Vue3 + TypeScript Angular后端框架 Spring Boot (Java)/Django (Python) Node.js (NestJS)数据库 MySQL + Redis PostgreSQL/MongoDB云服务 阿里云/腾讯云/AWS 华为云容器化 Docker + Kubernetes Docker Compose环境要求。

Vx18664956126的博客 1892

.NET Web Api 基于Zookeeper的服务注册与发现

安装与差异Zookeeper安装请参考我上篇文章基于Nginx的服务提供和消费基于zookeeper的服务注册和发现zk的负载均衡是可以调控,nginx只是能调权重,其他需要可控的都需要自己写插件;但是nginx的吞吐量比zk大很多,可以根据业务选择用哪种方式。服务端注册1.创建WEB API 程序,使用NuGet下载ZookeeperNet安装包2.WEB API 我只提供了一个测试方法3.WEB API Global文件中注册服务地址到Zookeeper配置文件。

释迦苦僧的专栏 560

深入解析ChangeFormer:基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer这一基于Transformer的孪生网络在遥感变化检测中的创新应用。通过分层Transformer编码器、特征差异计算模块和轻量级MLP解码器的设计,ChangeFormer在LEVIR-CD数据集上取得了90.4%的F1分数,显著优于传统卷积网络。文章还详细探讨了工程化实现、训练调参和模型部署的优化策略,为遥感变化检测领域提供了新的技术范式。

weixin_29051811的博客 732

Zookeeper .Net客户端代码

通过C#代码使用zookeeper Zookeeper的使用主要是通过创建其Nuget ZooKeeperNet包下的Zookeeper实例,并且调用其接口方法进行 的,主要的操作就是对znode的增删改操作,监听znode的变化以及处理。 Java代码 usingSystem; usingSystem.Collect

dota的专栏 743

纽扣电池供电系统优化:NBM5100A与STM32F745VG组合方案

在低功耗物联网设备设计中,能量管理是核心挑战之一。纽扣电池因其体积小、成本低被广泛采用,但瞬时大电流需求常导致电压骤降和寿命缩短。通过超级电容缓冲技术,可以实现能量的细水长流式存储与集中释放。NBM5100A电源管理IC与STM32F745VG微控制器的组合方案,采用双阶段能量管理架构,先以恒定小电流充电,再通过电容释放大电流。这种方案不仅能提升系统稳定性,还能延长电池寿命3-5倍,特别适合智能门锁、无线传感器等需要间歇性高功率输出的场景。

weixin_29194255的博客 257

别再死记硬背了!一张图搞懂无刷电机半桥与全桥驱动的核心差异(附避坑指南)

本文深入解析无刷直流电机的半桥与全桥驱动方式的核心差异,提供直观对比与选型指南。半桥驱动结构简单、成本低,适合低要求场景;全桥驱动性能优越但复杂,适用于高精度控制。文章还包含实战避坑指南,帮助工程师优化驱动方案选择与应用。

weixin_29290947的博客 320

ZookeeperNet(C#)使用——watcher触发

网上关于java的Zookeeper开源jar包的使用有很多,但C#的ZookeeperNet还不是很多,做项目的时候也遇到了很多问题,主要还是对这些方法的使用不清晰,于是我就把每个方法都测了一遍。 这里,分享一下我的使用经验。 create setData delete existAsync(path,watcher) Y Y Y getDataAsync(path,wat...

Irisohohoh的博客 543

Vue Vben Admin 登录页修改全攻略:从登录界面定制到接口对接全流程配置

方式一:修改国际化文件找到对应的语言包文件,修改和的值。方式二:直接传递文本page-description="现代化的后台管理系统模板"page-title="欢迎使用 Vue Vben Admin"从上面的代码可以看出,登录表单使用了的方式来定义表单字段,这种方式提供了极大的灵活性。如果你想要自定义表单,可以修改formSchema数组。如果你的登录需求非常特殊,现有的组件无法满足,你可以完全自定义表单。只需在login.vue中替换<template><h2>自定义登录</h2>

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 480

Zookeeper-Client: 让.NET开发者更轻松使用Zookeeper

Zookeeper-Client: 让.NET开发者更轻松使用Zookeeper 项目基础介绍 Zookeeper-Client 是一个开源项目,旨在为.NET开发者提供更加便捷的方式来使用 Apache ZooKeeper。该项目基于 C# 编程语言开发,旨在封装 ZooKeeper 的基本操作并提供一些常用的功能,从而让.NET开发者能够更加高效地管理和使用 ZooKeeper。 核心功能 该...

gitblog_00376的博客 528

RAG 实战:LangChain + 向量数据库构建知识问答系统

从文档加载、分割、嵌入到检索增强生成,完整实现一个基于本地文档的知识问答系统。

kaixin110a的博客 189

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

GoHBase ZooKeeper集成:客户端发现与负载均衡机制

GoHBase是一个纯Go语言实现的HBase客户端,它通过与ZooKeeper的深度集成实现了高效的服务发现和负载均衡机制。本文将详细解析GoHBase如何利用ZooKeeper实现HBase集群的动态感知与请求分发,帮助开发者理解其内部工作原理并优化客户端配置。 ## 核心功能:ZooKeeper在GoHBase中的角色 ZooKeeper作为分布式协调服务,在GoHBase架构中扮演着"

gitblog_00760的博客 864

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

解决Curator连接Zookeeper SASL认证失败问题

SASL(Simple Authentication and Security Layer)是分布式系统中常用的安全认证框架,通过模块化设计为网络协议提供认证服务。在Zookeeper分布式协调服务中,SASL认证机制依赖JAAS配置、安全策略和服务端协同工作。当使用Curator客户端连接配置了SASL认证的Zookeeper集群时,常会遇到"Will not attempt to authenticate using SASL (unknown error)"错误,这通常是由于JAAS配置加载时机不当或

weixin_33894640的博客 323

Rabbit.Zookeeper Net Core Client

说明 ZK.Client为IZookeeperClient类型 判断节点是否存在 创建临时节点,并添加数据 创建持久节点,并添加数据

菜鸟厚非 370

Zookeeper.NET Client(二)【官方驱动 开发入门】

首先项目结构很简单,如图:

极客神殿 4139

Zookeeper.NET Client(三)【Znode节点增删改查】

那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。——安东尼·罗宾class Program { static void Main(string[] args) { //创建一个Zookeeper实例,第一个参数为目标服务器地址和端口,第二个参数为Session超时时

极客神殿 1万+

Zookeeper:异步编程的强大助手

Zookeeper:异步编程的强大助手 在分布式系统中,Zookeeper 作为协调服务,提供了高效且可靠的数据一致性保障。今天要介绍的Apache ZooKeeper .NET async Client,是一款针对 .NET 开发的异步客户端,为开发者带来了便捷和高效的编程体验。 项目介绍 Apache ZooKeeper .NET async Client 是一个完全基于任务异步编程的客户端库...

gitblog_00516的博客 349

.net hbase client--终于浮出水面的轮子

一、开篇1.背景在大数据时代,HBase 数据库是个绕不开的热门话题。由于其使用 Java 作为主要开发语言,并且依赖大量的 Java 组件(如 Hadoop、zooKeep),使得其他...

dotNET跨平台 909

Zookeeper .Net Client 使用

编译参考 http://www.cnblogs.com/01-sunkey/articles/2438538.html 学习 http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html 转载于:https://www.cnblogs.com/anan/archive/2012/10/22/2734...

weixin_30393907的博客 129

Kafka与.net core(二)zookeeper

1.zookeeper简单介绍 1.1作用 zookeeper的作用是存储kafka的服务器信息,topic信息,和cunsumer信息。如下图: 而zookeeper是个什么东西呢?简单来说就是一个具有通知机制的文件系统,引用网路上的一张图 可以看出来zookeeper是一个树形的文件结构,我们可以自定义node与node的值,并对node进行监视,当node的结构或者值变化时,...

weixin_30848775的博客 196

Apache Pulsar 客户端架构与 Reader 接口实战指南:Client 接入流程、连接复用与手动游标控制

Pulsar 通过客户端 API 向应用屏蔽了 broker 通信协议、连接管理与消息排队等底层细节。本文以 Apache Pulsar 2.4.0 文档(`site2/website-next/versioned_docs/version-2.4.0/concepts-clients.md`)为骨架,结合仓库内客户端源码,讲解 Pulsar 客户端的连接建立(setup)流程、自动重连与指数退避

gitblog_00631的博客 231
上一篇: AutoMapper使用示例(二)【常规的转换器和分页功能】
下一篇: Zookeeper.NET Client(二)【官方驱动 开发入门】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值