zookeeper学习-2(如何使用zookeeper进行配置管理-java版本)

ZooKeeper入门学习 什么是 ZooKeeper:ZooKeeper 是一个分布式应用协调服务,提供高性能、高可用和严格有序的服务。配置管理:集中管理配置信息,简化分布式系统中的配置管理。分布式同步:提供分布式锁和同步机制,解决分布式系统中的一致性问题。命名服务:提供分布式系统中的命名和位置服务。 阅读详情

首先需要安装zookeeper
点击查看如何安装

zookeeper 提供了 c ,java 两种语言的客户端。这里讲解java语言。

1:将jar包 zookeeper-3.5.1-alpha.jar(跟着安装包一起下载下来)放入你的classpath下。

2:编写代码

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;

public class ZookeeperClient {

    private static Stat stat = new Stat();

    private static ZooKeeper zk;
    //监控 路径
    private static String monitorPath = "/serverList";

    public static void main(String[] args) {
        try {

            zk = new ZooKeeper("192.168.17.129:2181,192.168.17.129:2182,192.168.17.129:2183", 5000, new Watcher() {
                @Override
                public void process(WatchedEvent event) {
                    //获取事件类型
                    EventType eventType = event.getType();
                    System.out.println("事件类型:" + eventType.toString());
                    if(eventType.equals( EventType.NodeDataChanged)) {//事件类型为,节点对应的数据 发生变化
                        monitor(zk);
                    }
                    if(eventType.equals( EventType.NodeChildrenChanged)) {//事件类型为,节点发生变化,比如 添加节点,删除节点。
                        monitor(zk);
                    }
                }
            });

            monitor(zk);

            //保证 main 线程 不会 死掉
            Thread.sleep(Long.MAX_VALUE);

        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    /**
     * Zookeeper 监听
     * @param zk
     */
    public static void monitor(ZooKeeper zk) {
        try {
            //监控 /serverList 下面 是否 创建了新节点 或者删除了新节点
            //也可以指定特定的 watcher 例如 zk.getChildren(String path, Watcher watcher);
            //注意:每次调用 Watcher 的 process 方法,如果想要对相应的 目录或者目录对应的数据进行监听,都需要重新注册,因为注册一次,只能调用一次 Watcher 的 process 方法
            List<String> subList = zk.getChildren(monitorPath, true);
            for (int i=0,size=subList.size(); i<size; i++) {
                String subNode = subList.get(i);
                //监控 /serverList 下面的 节点 对应 的 数据 是否发生变化
                //也可以指定特定的 watcher 例如 zk.getData(String path, Watcher watcher, Stat stat);
                byte[] data = zk.getData(monitorPath + "/" + subNode, true, stat);
                if(data != null && data.length > 0) {
                    //输出 节点对应的数据
                    System.out.println("节点数据: " + monitorPath + "/" + subNode + "=" + new String(data, "utf-8"));
                }
            }
        } catch (KeeperException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

}

3:测试过程

运行代码前,创建 serverList目录
依次执行下面的命令
链接 zookeeper
/usr/local/zookeeper-3/bin/zkCli.sh -server localhost:2183
创建serverList目录
create /serverList

创建完serverList目录后,运行代码。

创建serverList的子目录
create /serverList/server1
给 /serverList/server1 目录赋值
set /serverList/server1 192.168.1.1
这时测试代码在控制台 会有内容输入。
/serverList/server1=192.168.1.1

到这里,如何使用zookeeper进行配置管理 就结束了。

Zookeeper 和 Kafka 版本与 JDK 要求 Apache Zookeeper和Kafka对JDK版本要求不同:Zookeeper 3.4.x支持JDK6(建议JDK8),3.5.x+需JDK8,3.7+需JDK11;Kafka 1.x+需JDK8,3.0+建议JDK11,未来4.0将支持JDK17。推荐组合包括Kafka 2.8+Zookeeper 3.5+JDK8(稳定)或Kafka 3.5+Zookeeper 3.6+JDK11/17(新特性)。注意避免版本冲突,如Zookeeper 3.7+需JDK11+。建议根据项目需求选择适当版本组合。 阅读详情

相关推荐

Zookeeper 实战 | Zookeeper 和Spring Cloud相结合解决分布式锁、服务注册与发现、配置管理

Zookeeper 是一个开源的分布式协调服务,它起源于 Google 的 Chubby 项目,并成为 Hadoop 分布式系统的基础组件。Zookeeper 提供了一组简单的原语集,分布式应用程序可以基于这些原语实现同步服务、配置维护和命名服务等。Zookeeper 主要角色是协调器(Controller)和客户端(Client)。协调器负责管理分布式应用的逻辑,客户端则用于与协调器进行交互。在分布式应用中,通常需要一个主控节点(Controller)来管理其他物理分布的子进程。

AI时代光年 8113

zookeeper java版本号_zookeeperCli和Java操作zookeeperAPI

推荐一个zookeeper可视化工具:zktools.exe1.zkCli客户端基本操作(命令行操作)1.链接并查看基本命令.\zkCli.cmd -server 127.0.0.1:2181其基本命令如下ZooKeeper -server host:port cmd argsstatpath [watch]set path data [version]lspath [watch]delquota...

weixin_39603117的博客 729

nacos3.1.0适配国产数据库

Nacos 3.1.0适配国产数据库指南 本文介绍了Nacos 3.1.0版本适配达梦数据库和人大金仓数据库的具体步骤。主要内容包括:添加达梦和人大金仓的JDBC驱动依赖,修改nacos-persistence模块的配置文件及相关Java类,以及打包和运行注意事项。文章特别指出3.1.0版本需要JDK17环境,并提供了解决常见问题的建议,如添加VM options配置和不同启动方式等。通过本文的配置指导,可以实现Nacos服务在国产数据库环境下的正常运行。

梦昼初的博客 1467

zookeeper java版本号_zookeeper学习-3(如何使用zookeeper进行集群管理-java版本)

使用场景整个系统中分master和server两种角色,每个master、server都需要知道集群内当前可用的server列表。原处理方式:master负责集群server信息的收集和分发。server启动后和master建立长连接并心跳检测,master收集server的新增和disconnect,并将收集到的信息分发给所有server。原存在问题:master和server耦合较重;mast...

weixin_42520909的博客 1384

红队内网攻防渗透:内网渗透之内网对抗:实战项目&VPC1打靶&PHP-RCE&三层代理路由&防火墙上线&密码喷射&域控提权

上面已经抓取到了密码,但是我们通过拓扑分析看,要想上线win10只能通过正向shell,因为win7的防火墙是开的,win10反向主动连接肯定入站规则拦截,而win10自己没有开防火墙,所以win7主动正向连接就可以上线。win7开启了防火墙,入站规则肯定是会拦截我们的请求的,所以我们需要反向上线,让win7主动来连接我们。这里扫描发现是存在ms17010漏洞的,但是想上线192.168.2.142的话,我们没有路由是上线不了的,这里有两种办法:一种msf直接生成后门,另一种cs移植后门到msf。

HACKONE的博客 910

基于单光子探测的高重频多通道符合测距

TDC专栏之基于单光子探测的高重频多通道符合测距

sdau2005的博客 1204

Zookeeper使用及对应java api使用

官方文档-配置和cmd下操作命令 官方文档-java接口 配置 创建默认配置文件zoo.cfg内容如下 tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 启动服务器命令 bin/zkServer.sh start 常用命令 ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过...

a314773862的博客 1271

LangChain与LangGraph核心区别解析

LangChain与LangGraph是当前大语言模型(LLM)应用开发中两个紧密相关且极具影响力的开源框架。它们源于LangChain AI公司,设计哲学互补,旨在解决不同维度的LLM工程化问题,共同构成了构建复杂智能应用的强大工具集。

weixin_35774598的博客 1930

zookeeper的java客户端实现配置中心

无

xajh_czbk的博客 570

基于STM32L4XX的环境光传感器(VCNL4040M3OE)应用程序设计

• 集成模块:红外发射器(IRED)、环境光传感器(ALS)、接近传感器(PS)及信号调理IC。#define VCNL4040_I2C_ADDR (0x60 << 1) // 7位地址左移一位。// 组合成16位值。// I2C总线句柄。// 设置参数:ALS集成时间160ms,中断禁止,ALS功能开启。// 设置参数:PS工作频率80Hz,开红外二极管,PS功能开启。// 初始化I2C外设。• 输出类型:I2C总线(ALS/PS)// 2. 配置环境光传感器 (ALS) 并启动。

myron6688的博客 144

第47节:cesium 热力图效果(含源码+视频)

cesium 热力图效果

qq_29384639的博客 1676

Zookeeper学习笔记

Zookeeper学习笔记

qq_48617775的博客 3378

优快云独家首发!万字长文,YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程!小白也能看懂!掌握了这个就掌握了魔改YOLO的核心!

🍀🍀🍀YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程,全网最强,学不会算我输!!!

Coding... 1万+

ZooKeeper配置管理文件

最近在工作中,为了完善公司集群服务的架构,提高可用性,降低运维成本,因此开始学习ZooKeeper。 至于什么是ZooKeeper?它能做什么?如何安装ZooKeeper?我就不一一介绍了,类似这些资料网上到处都是。我主要是把在开发过程中,以及个人对ZooKeeper的一些了解记录下来,大家如果遇到类似场景时,希望我的文章能够给你提供一些思路。 我使用的ZooKeeper(以...

aikuangchou2298的博客 105

Langchain cannot connect with Azure SQL Database

Langchain 无法连接到 Azure SQL 数据库

suiusoar 633

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Java-zookeeper】学习总结

什么是zk 什么是ZooKeeper? 1. 基本概念 1)总结 – ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。 – 使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了。 2)数据结构 ZooKeeper的数据结构,跟Unix文件系统非常类似,可以看做是一颗树

qq_38734403的博客 6735

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【分布式架构学习】zookeeper入门

Apache ZooKeeper 是一个开源的分布式协调服务,专为分布式应用提供高效、可靠的协同服务。它主要用于配置维护、命名服务、分布式同步和组服务等场景。ZooKeeper 的设计目标是在大规模分布式环境中提供高性能的服务,具有高可用性、强一致性等特点。ZooKeeper 的数据模型类似于标准文件系统,其存储的数据称为 znode(ZooKeeper 节点)。每个 znode 可以包含数据,并且可以拥有子节点,形成一棵树形结构。客户端可以通过创建、删除、读取或修改这些 znode 来实现各种功能。

浅墨の技术空间 1962

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Zookeeper入门学习

在分布式组件里面,Zookeeper是一个为其他分布式服务提供协调服务的中间件。 服务包含:统一配置管理、统一命名服务、分布式锁、集群管理、分布式队列、数据发布订阅

weixin_44261754的博客 2026

java zookeeper_Java学习之——Zookeeper

一、 ZooKeeper 简介顾名思义 zookeeper 就是动物园管理员,他是用来管 hadoop(大象)、Hive(蜜蜂)、pig(小 猪)的管理员, Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。他提供的主要功 能包括:配置管理、名字服务、分布式...

weixin_32620249的博客 809

Zookeeper - Java API 实现节点数据的增改查实操

摘要 📋 本文介绍了如何使用 ZooKeeper Java API 进行节点数据的 增(Create)、改(Set) 和 查(Get) 操作。主要内容包括: ZooKeeper 基础:分布式协调服务特性与数据模型(持久/临时节点) 开发环境搭建:Maven依赖配置与ZooKeeper服务器连接 核心API操作: 创建节点(create()方法) 读取节点数据(getData()方法) 修改节点数据(setData()方法) 代码示例:提供完整的Java实现代码片段,包含参数说明和异常处理提示 通过本文,开

千淘万漉虽辛苦,吹尽狂沙始到金 9694

zookeeper 连接慢_Java学习之——Zookeeper

一、 ZooKeeper 简介 顾名思义 zookeeper 就是动物园管理员,他是用来管 hadoop(大象)、Hive(蜜蜂)、pig(小 猪)的管理员, Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。他提供的主要功 能包括:配置管理、名字服务、分布...

weixin_39617669的博客 137

Zookeeper 从安装到应用

Zookeeper 从安装到应用

激流丶的博客 2667

ZooKeeper之(统一配置管理、统一命名服务、分布式锁、集群管理)

目录 一、什么是ZooKeeper 二、为什么ZooKeeper能干这么多? 2.1 监听器 三、ZooKeeper是怎么做到的? 3.1 统一配置管理 3.2 统一命名服务 3.3 分布式锁 3.4集群状态 最后 上次写了一篇什么是消息队列?以后,本来想入门一下Kafka的(装一下环境、看看Kafka一些概念啥的)。后来发现Kafka用到了ZooKeeper,而我又对Zoo...

凡是过往,皆为序章 3301

Zookeeper的学习

01【熟悉】Zookeeper概述 1,Zookeeper背景 随着互联网技术的发展,企业对计算机系统的计算,存储能力要求越来越高,各大IT企业都在追求高并发,海量存储的极致,在这样的背景下,单纯依靠少量高性能单机来完成计算机,云计算的任务已经无法满足需求,企业的IT架构逐渐由集中式往分布式过渡。所谓的分布式是指:把一个计算任务分解成若干个计算单元,并分派到不同的计算机中去执行,最终汇总计算结果的过程。 2,Zookeeper概述 Zookeeper是源代码开放的分布式协调服务,是一个高性能的分

weixin_42672802的博客 1739

Zookeeper学习记录及Java客户端连接示例

1. Zookeeper 1.1 简介 ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds o...

Ep流苏的博客 570

Zookeeper学习总结

什么是Zookeeper

qq_16753341的博客 1583
上一篇: zookeeper学习-1(安装和配置)
下一篇: zookeeper学习-3(如何使用zookeeper进行集群管理-java版本)
三易的博客
博客等级 码龄15年 42粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值