zookeeper的javaAPI使用

Zookeeper JavaAPI Watch 事件监听 Zookeeper JavaAPI Watch事件监听 •ZooKeeper 允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴趣的客户端上去,该机制是 ZooKeeper 实现分布式协调服务的重要特性。 •ZooKeeper 中引入了Watcher机制来实现了发布/订阅功能能,能够让多个订阅者同时监听某一个对象,当一个对象自身状态变化时,会通知所有订阅者。 •ZooKeeper 原生支持通过注册Watcher来进行事件监听,但是其使用并不 阅读详情
前提:
1.虚拟机之间互通。
2.windows环境的host域名解析配置完成     C:\WINDOWS\system32\drivers\etc\host
3.java引入以下maven jar包
<dependencies>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.collections</groupId>
        <artifactId>google-collections</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>RELEASE</version>
        <!--
        test:只在测试时使用,不打包
        provided:仅在开发环境使用,不打包
        compile:默认,开发环境要,打包也要
         -->
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <!-- java编译插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>



---------------------------------------以下为具体代码-------------------------
package cn.itcast_zk.demo01;

import org.apache.curator.RetryPolicy;
import org.apache.curator.RetrySleeper;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.TreeCache;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
import org.apache.curator.framework.recipes.cache.TreeCacheListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.junit.jupiter.api.Test;

public class zkOperate {
    @Test
    public  void  createNode() throws Exception {
        //创建一个客户连接
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);

        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);

        //启动连接
        client.start();

        //这个客户递归创建一个节点,节点类型为永久,路径为/java_node_test01/hello,内容为asdb
        client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/java_node_test01/hello","asdb".getBytes());

        //结束
        client.close();


    }

    @Test
    public  void  createNode2() throws Exception {
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(100000,2);

        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);

        client.start();

        //这个客户递归创建一个节点,节点类型为临时,路径为/java_node_test01/hello,内容为asdb
        client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/java_node_test02/hello");

        Thread.sleep(5000);

        client.close();


    }

    @Test
    public  void  updateNode() throws Exception {
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);

        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);

        client.start();
        //这个客户递归设置/java_node_test01的值为test
        client.setData().forPath("/java_node_test01","test".getBytes());


        client.close();


    }

    @Test
    public  void  delteNode() throws Exception {
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);

        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);

        client.start();

        client.delete().forPath("/java_node_test01");


        client.close();


    }

    @Test
    public  void  getNode() throws Exception {
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);

        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);

        client.start();
        
        //获取节点的值
        byte[] bs = client.getData().forPath("/java_node_test01");
        System.out.println(new String(bs));


        client.close();


    }

    @Test
    public void watch() throws Exception {
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,2);
        CuratorFramework client = CuratorFrameworkFactory.newClient("node01:2181,node02:2181,node03:2181",retryPolicy);



        client.start();

        //创建一个节点的监听,此监听不是一次性的,用完会自动再次注册
        TreeCache treeCache = new TreeCache(client,"/");

        //重写监听的方法,注意入参CuratorFramework client, TreeCacheEvent even,和入参的方法getData();getType();
        treeCache.getListenable().addListener(new TreeCacheListener() {
            @Override
            public void childEvent(CuratorFramework client, TreeCacheEvent even) throws Exception {
                ChildData data = even.getData();
                if(data != null){
                    System.out.println(even.getType());
                    switch ( even.getType()){
                        case  NODE_ADDED:
                            System.out.println("节点增加内容是:"+new String(data.getData())+";路径是:"+data.getPath());
                            break;
                        case NODE_UPDATED:
                            System.out.println("NODE_UPDATED : "+ data.getPath() +"  数据:"+ new String(data.getData()));
                            break;
                        case NODE_REMOVED:
                            System.out.println("NODE_REMOVED : "+ data.getPath() +"  数据:"+ new String(data.getData()));
                            break;
                        default:
                            break;
                    }

                }else {
                    System.out.println("data is null : "+ even.getType());
                }

            }
        });
        
        //启动监听
        treeCache.start();
        
        //当前线程休眠待机
        Thread.sleep(500000);
        client.close();
    }
}
Zookeeper初探:使用JavaAPI连接并创建节点 Zookeeper是一个分布式的开源协调服务,它提供了高效可靠的数据注册和协同管理功能。总结:本文介绍了如何使用JavaAPI连接到Zookeeper,并演示了如何创建节点。通过这些基础的操作,你可以开始探索更多Zookeeper提供的强大功能,并在分布式系统中发挥它的作用。通过以上的代码示例,我们实现了连接到Zookeeper服务器并创建节点的功能。当然,Zookeeper还有很多其他的功能和API可以使用,你可以根据需要进行扩展和应用。的Java类,其中定义了连接到Zookeeper服务器的相关代码。 阅读详情

相关推荐

Zookeeper入门之五:JavaAPI连接到Zookeeper和创建节点

JavaAPI连接到Zookeeper和创建节点一.连接到Zookeeper二、创建节点1.创建具有增删改查权限的节点2.创建只读节点bigdata23.自定义节点权限4.IP授权模式创建节点5.auth授权模式创建节点6.autho授权模式,自定义权限创建节点7.异步方式创建节点 znode是zookeeper集合的核心组件,zookeeper API提供了一组方法使用zookeeper集合来操作znode的所有细节。 客户端与zookeeper交互应该遵循以下步骤: 连接到zookeeper服务器,z

zhengzaifeidelushang的博客 385

Zookeeper的Java API操作

Curator常用操作:创建连接、添加节点、删除节点、修改节点、查询节点、Watch事件监听 首先还是创建项目所需要的环境 1、在IDEA中创建maven工程 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <vers

兮遥 976

Zookeeper入门之八:JavaAPI检查节点是否存在

Zookeeper入门之七:JavaAPI检查节点是否存在一、检查节点是否存在JavaAPI二.同步方式检查节点是否存在三.异步方式检查节点是否存在 一、检查节点是否存在JavaAPI 同步方式:exists(String path, boolean b) 异步方式:exists(String path, boolean b, AsyncCallback callBack, Object ctx) path:znode路径 b:是否使用连接对象中注册的监视器 callBack:异步回调接口 ctx:传递上

zhengzaifeidelushang的博客 292

Zookeeper的Java API 操作

今天我们来实现一下用JavaAPI操作zookeeper的节点。 首先我们需要启动zookeeper的service服务。 /export/servers/zookeeper-3.4.9/bin/zkServer.sh start 然后我们来启动zookeeper的client 服务。 /export/servers/zookeeper-3.4.9/bin/zkCli.sh -server node01:2181 最后我们来ls一下发现有如下节点: [

阳光宅男 936

Zookeeper入门之六:JavaAPI更新节点数据和删除节点

Zookeeper入门之六:JavaAPI更新节点数据和删除节点一、更新节点数据JavaAPI二、同步方式更新节点数据三、获取节点返回的数据四、异步方式更新节点数据五、删除节点JavaAPI六、同步方式删除节点七、异步方式删除节点 一、更新节点数据JavaAPI 同步方式:setData(String path,byte[] data,int version) 异步方式:setData(String path,byth [] data,int version,AsyncCallBack.StatCallba

zhengzaifeidelushang的博客 251

ZooKeeper Java API

NULL 博文链接:https://rd-030.iteye.com/blog/2299803

zookeeper的javaAPI操作

zookeeper的javaAPI操作 <!--<repositories> <repostitory> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/ </url> </repostitory> </re

Xiaoweidumpb 417

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 563

ZooKeeper之Java API的基本使用以及应用场景的实现

介绍ZooKeeper中Java API的基本使用,以及对Zookeeper常见应用场景的具体实现。

积跬步,至千里。 1058

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 447

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2170

Zookeeper-JavaApI操作

Curator 是 Apache ZooKeeper 的Java客户端库。原生Java APIZkClientCuratorCurator 项目的目标是简化 ZooKeeper 客户端的使用。Curator 最初是 Netfix 研发的,后来捐献了 Apache 基金会,目前是 Apache 的顶级项目。官网:http://curator.apache.org/

weixin_46926189的博客 1246

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 431

Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)

Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zkZookeeper 是一个分布式的、开源的分布式应用程序的协调服务。Zookeeper 提供的主要功能包括:配置管理分布式锁集群管理ZooKeeper 是一个树形目录服务,其数据模型和Unix的文件系统目录树很类似,拥有一个层次化结构。这里面的每一个节点都被称为: ZNode,每个节点上

我要记录学习博客 857

垂直领域论坛数据挖掘:Python突破Discuz!加密与用户画像构建指南

在垂直领域论坛,如专业技术论坛、兴趣爱好社区等,积累了大量有价值的信息和用户数据。这些数据不仅可以帮助我们了解用户的行为模式和兴趣点,还能为社区运营、产品优化、商业决策等提供有力支持。然而,许多基于Discuz!系统的论坛对数据进行了加密保护,给数据挖掘带来了一定的挑战。本文将详细探讨如何使用Python突破Discuz!论坛的加密机制,并构建用户画像,实现数据掘金。

u014481728的博客 1693

10. 重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器!

重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器! 全网最详细的Spring AI 文章,每章都会提供代码入口,让你更容易得入门和理解Spring AI 相关概念,直接节约你百分之六十的学习成本时间。

gorgor在码农 1065

javaAPI操作-Zookeeper

javaAPI操作-Zookeeper

qq_40432598的博客 1211

双向升压和降压的DC-DC转换器设计

c复制// 类型定义与常量MODE_FORWARD_BOOST, // 正向升压模式(输入700V→输出1200V)MODE_FORWARD_BUCK, // 正向降压模式(输入700V→输出<700V)MODE_REVERSE_BOOST, // 反向升压模式(输入1200V→输出700V)MODE_REVERSE_BUCK // 反向降压模式(输入<700V→输出700V)// 硬件参数float Vin;// 输入电压(0-1200V)

567

ZooKeeper JavaAPI 操作

ZooKeeper JavaAPI 操作

于小浩的博客 1322

YOLO11-Seg优化:注意力魔改 | 具有切片操作的SimAM注意力,魔改SimAM

问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱;

会AI的学姐 458

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Zookeeper04之javaAPI的使用

  本文主要介绍下zookeeper的javaAPI的使用,zookeeper的安装操作及命令不清楚的可参考前面文章 Zookeeper01之介绍和安装环境准备 Zookeeper02之集群环境搭建 Zookeeper03之客户端命令操作 Java程序操作Zookeeper 1.创建java项目并导入相关jar包 主要jar包在主目录下 项目需要的相关依赖的jar包在zookeeper的解压...

波波烤鸭的博客 2884

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

zookeeper javaAPI操作

javaAPI操作创建maven工程并将jar包导入pom文件基本使用 创建maven工程并将jar包导入pom文件 jar包: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> 基本使

qq_45798620的博客 349

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

zookeeper的JavaAPI

zookeeper的JavaAPI 代码已经上传至Github:https://github.com/StarsForY/MyBigDatasPractice org.apache.zookeeper.Zookeeper Zookeeper 是在 Java 中客户端主类,负责建立与 zookeeper 集群的会话,并提供方法进行操作。 org.apache.zookeeper.Watcher Wa...

xxydzyr的博客 252

zookeeper JavaAPI入门操作

1 安装 zookeeper 是支持window安装的,

马宏的世界 919

Zookeeper之javaAPI的使用

Java程序操作Zookeeper 1.创建java项目并导入相关jar包 主要jar包在主目录下 项目需要的相关依赖的jar包在zookeeper的解压文件的lib目录下就有 将这几个jar包导入项目中 <dependency> <groupId>org.apache.zookeeper</groupId> <artifac...

weixin_30478923的博客 161
上一篇: zookeeper安装
下一篇: zookeeper的shell操作
RZH_long
博客等级 码龄6年 17粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值