zoukankan      html  css  js  c++  java
  • .NET Core 使用 NZookeeper 连接 Zookeeper

    开源地址:https://github.com/stulzq/NZookeeper

    从 NUGET 安装:

    dotnet add package NZookeeper 
    

    NZookeeper 是 Zookeeper 客户端库 ZookeeperEx 的封装,旨在简化 ZookeeperEx 的使用。

    目前还不支持事务操作,下个版本支持

    快速入门

    1.连接 Zookeeper

    using var loggerFactory = LoggerFactory.Create(builder =>
                {
                    builder
                        .AddFilter("Microsoft", LogLevel.Debug)
                        .AddFilter("System", LogLevel.Information)
                        .AddConsole();
                });
    var logger = loggerFactory.CreateLogger<ZkConnection>();
    //多个Zookeeper地址使用英文逗号分隔
    var zk = new ZkConnection(new ZkConnectionOptions() { ConnectionString = "localhost:2181", SessionTimeout = 5000 }, logger);
    await zk.ConnectAsync();
    

    2.设置 Watch 事件

    用于监听节点变化和数据变化,节点变化包括:节点创建,节点删除

    zk.OnWatch += Zk_OnWatch;
    
    private Task Zk_OnWatch(ZkWatchEventArgs args)
    {
        Console.WriteLine($"OnWatch: Path {args.Path}, Type {args.EventType}, State {args.EventType}");
        return Task.CompletedTask;
    }
    

    3.节点操作

    //创建节点
    await zk.CreateNodeAsync("/mynode", "节点数据",
                        new List<Acl>() { new Acl(AclPerm.All, AclScheme.World, AclId.World()) }, NodeType.Ephemeral);
    //获取子节点
    await zk.GetChildrenAsync("/mynode");
    //删除节点
    await zk.DeleteNodeAsync("/mynode");
    //检查节点是否存在
    await zk.NodeExistsAsync("/mynode")
    

    4.数据

    //更新节点数据
    await zk.SetDataAsync("/mynode", "111");
    //获取节点数据
    await zk.GetDataAsync("/mynode")
    

    5.ACL

    //获取ACL
    await zk.GetAclAsync("/mynode");
    //设置ACL
    await zk.SetAclAsync("/mynode",new List<Acl>() { new Acl(AclPerm.All, AclScheme.World, AclId.World()) })
    
  • 相关阅读:
    【AtCoder】Tenka1 Programmer Contest(C
    【AtCoder】AGC024
    【AtCoder】ARC098题解
    java反射机制详解 及 Method.invoke解释
    Spring切入点表达式常用写法
    border-radius 样式表CSS3圆角属性
    jquery判断自己是父节点的第几个子节点
    Spring事务配置的五种方式
    Spring中PropertyPlaceholderConfigurer的使用
    js中使用s(c)标签
  • 原文地址:https://www.cnblogs.com/stulzq/p/13994647.html
Copyright © 2011-2022 走看看