首页 > 编程语言 >zookeeper监听集群节点的实现zkclient组件实现方案(Java版)

zookeeper监听集群节点的实现zkclient组件实现方案(Java版)

时间:2024-04-03 17:33:39浏览次数:28  
标签:Java Thread zk zookeeper zkClient sleep jk zkclient ZNode

ZooKeeper Watcher 机制
ZooKeeper Watcher 机制

  1. client 向zookeeper 注册监听
  2. client注册的同时会存储一个WatchManager对象
  3. 向zookeeper发生改变则notification client 并发送一个WatchManager对象,然后client再更新该对象
package com.jacky.zk.demo;

import org.I0Itec.zkclient.IZkChildListener;
import org.I0Itec.zkclient.ZkClient;

import java.util.List;

/*
* 使用监听器
* */
public class Get_child {
    public static void main(String[] args) throws InterruptedException {
        //    获取到zkClient
        final ZkClient zkClient= new ZkClient("127.0.0.1:2181");
        //    zkClient 对指定目录进行监听(不存在的目录)
        /*
        	ps: 可以监听的事件类型:
            NodeCreated:当ZNode被创建时触发。
            NodeDeleted:当ZNode被删除时触发。
            NodeDataChanged:当ZNode的数据内容发生改变时触发。
            NodeChildrenChanged:当ZNode的子节点列表发生更改时触发(添加或删除子节点)。
            ConnectionStateChanged:与ZooKeeper服务器的连接状态发生变化时触发。   
        * */
        zkClient.subscribeChildChanges("/zk-jk", new IZkChildListener() {
		//  回调
            @Override
            public void handleChildChange(String s, List<String> children) throws Exception {
                System.out.println("error"+children);
            }
        });
        zkClient.createPersistent("/zk-jk");
        Thread.sleep(2000);
        zkClient.createPersistent("/zk-jk/cls-jk");
        Thread.sleep(2000);
        zkClient.deleteRecursive("/zk-jk/cls-jk");
        Thread.sleep(2000);
        zkClient.delete("/zk-jk");
        Thread.sleep(Integer.MAX_VALUE);
    }
}


标签:Java,Thread,zk,zookeeper,zkClient,sleep,jk,zkclient,ZNode
From: https://blog.csdn.net/qq_35374791/article/details/137351292

相关文章

  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
    工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营等全过程。通过该......
  • java 读取excel文件
    POI-Excel写1、首先可以创建一个普通的maven项目<!--导入poi依赖,对excel2003的支持依赖(xls)--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.0.0</version></dependency><......
  • JavaScript变量对象详解
    正文在JavaScript中,变量对象是执行上下文中的一个重要概念,它负责存储函数中的变量、函数声明和形参。了解变量对象对于理解JavaScript的作用域、作用域链以及变量的声明和提升至关重要。1.变量对象的定义变量对象是在执行上下文创建阶段被创建的,用于存储该上下文中的变......
  • 《Java 热点:探索高效编程的新境界》
    前言在当今的数字时代,Java作为一种广泛使用的编程语言,一直处于技术领域的前沿。它的强大功能和广泛应用使得它成为了众多开发者的首选。本文将深入探讨一些最新的Java热点话题,带您领略Java编程的魅力和高效性。一、Java的发展与优势Java具有以下显著优势:跨平台性......
  • java 将文件夹进行压缩,按指定大小进行分卷压缩
    使用方法:SplitZipsplitZip=newSplitZip();splitZip.start(file.getPath(),file.getPath());packageext.xxx.util;importjava.io.*;importjava.util.zip.*;importstaticorg.apache.commons.lang3.StringUtils.isBlank;/***分卷压缩工具*/publicclassSp......
  • Java开发工具:IDEA
    学习,开发编程都离不开开发工具,常见之一的开发工具IDEA:一般学习使用的话使用免费的社区版本就够用了;https://www.jetbrains.com.cn/idea/download/download-thanks.html?platform=windows&code=IIC下载下来傻瓜式点点点安装就好了,使用开发工具让让我们在学习和开发的时候更好,......
  • C#-JavaScript-base64加密解码
    C#//base64加密//调用方式:Helper.EncodeToBase64(需要加密字符串)publicstaticstringEncodeToBase64(stringdata){byte[]byteData=Encoding.UTF8.GetBytes(data);returnConvert.ToBase64String(byteData);......
  • Java基础核心Map
    在Java中,Map是一种用于存储键值对(key-valuepairs)的集合类型。它提供了一种将键映射到值的方式,其中每个键在Map中都是唯一的。Map接口是java.util包中的一部分。常用实现类:HashMap:基于哈希表实现的Map,它提供了平均时间复杂度为O(1)的插入、删除和查找操作。但它不保证元......
  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第一章
    目录一、引言定义:重要性:文章目的:二、Java集合框架概述集合框架结构:常用接口概览:集合框架通用特性:一、引言Java集合框架是Java语言提供的一套统一、灵活且高效的API,用于存储、操作和管理对象集合的数据结构。它作为Java标准库的核心组成部分,对于任何Java开发者而......
  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第二章
    目录一、List接口及其常见实现类List接口定义与特性:ArrayList:Vector与Stack:二、Set接口及其常见实现类Set接口定义与特性:HashSet:TreeSet:LinkedHashSet:一、List接口及其常见实现类List接口定义与特性:List接口是Java集合框架中一个重要的接口,继承自Collection接口......