zookeeper客户端

news2024/10/24 3:25:26
  1. 启动单机版的zookeeper
    在这里插入图片描述
  2. 配置Maven环境
    (1) IDEA自带maven
    (2) 更新Maven库镜像地址:
    ① 拷贝D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.5\plugins\maven\lib\maven3\conf\settings.xml [IntelliJ的安装目录]到 C:/用户/username/.m2 (如果.m2文件不存在,可以新建一个.m2文件夹);
    ② 修改.m2文件夹下的settings.xml,在 和之间添加:
    ​ (为了可以从国内的aliyun镜像站下载依赖,国外的依赖下载慢 )
 <mirror>
   <id>aliyun</id>
   <mirrorOf>central</mirrorOf>
   <name>Human Readable Name for this Mirror.</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 </mirror>

在这里插入图片描述

​ (3)可以修改.m2文件夹的位置:https://blog.csdn.net/qq_27093465/article/details/52957253,此处我没有修改

  1. 新建Maven项目,选好JDK,不要选"Create from archetype",设置完之后next,最后finish
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1. 打开新建的项目之后,右下加会出现,import changes即可
      在这里插入图片描述

    2. 打开后的pom.xml文件
      在这里插入图片描述
      6. 添加依赖,添加的依赖放在<dependencies></dependencies>之间,每个依赖用<dependency></dependency>括起来
      在这里插入图片描述
      在这里插入图片描述
      7. zookeeper版本位置发红,可以去aliyun查看一下zookeeper的版本,选择GAV搜索

        ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329224353179.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)
      
      1. 根据搜索结果修改zookeeper的版本,然后更新,稍等片刻

      在这里插入图片描述
      10. 继续完善pom.xml文件,添加org.apache.zookeeper依赖,可以从maven仓库找,其实不需要上面的org.apache.hadoop也可以,后来来我把它删了,一下是完整代码

     <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example.zk1</groupId>
    <artifactId>zookeeper1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <type>pom</type>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.3.1</version>
        </dependency>

    </dependencies>


</project>

在这里插入图片描述
①从maven仓库中查找zookeeper,选择自己的zookeeper版本,复制下面的代码

	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329223908666.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329222851853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)
  ②Loj4j的依赖,日志用,也是在Mave仓库找apache Log4j Core,选择一个版本复制依赖到dependencies节点
  在resources目录下新建log4j.properties
log4j.rootLogger=INFO, stdout  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.logfile=org.apache.log4j.FileAppender  
log4j.appender.logfile.File=target/spring.log  
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  

在这里插入图片描述
这部分是为了下图
在这里插入图片描述

 ③ 还有一个做测试用的[Junit](https://mvnrepository.com/artifact/junit/junit)
  11.  重新install,有时有些依赖没有下载下来但并不影响使用
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20200330103232585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)  
  13.  接下来写代码,新建package,新建java类
  		![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329222939838.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)
  		![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329222945531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)
   13. 查看Centos7的ip地址,使用ifconfig命令,查看ens33的ip
  
        ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329222956252.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI5ODU5MA==,size_16,color_FFFFFF,t_70)
  
  14. 写代码
  
      ```java
      package demo.zookeeper;
      
      import org.apache.zookeeper.*;
      import org.apache.zookeeper.ZooDefs.Ids;
      
      import java.io.IOException;
      
      public class ZKBasicOperation {
          public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
              // 创建一个与服务器的连接
              ZooKeeper zk = new ZooKeeper("192.168.79.128:2181", 60000, new Watcher() {
                  // 监控所有被触发的事件
                  public void process(WatchedEvent event) {
                      System.out.println("EVENT:" + event.getType());
                  }
              });
              // 查看根节点
              System.out.println("ls / => " + zk.getChildren("/", true));
      
              // 创建一个目录节点
              if (zk.exists("/node", true) == null) {
                  zk.create("/node", "conan".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
                  System.out.println("create /node conan");
                  // 查看/node节点数据
                  System.out.println("get /node => " + new String(zk.getData("/node", false, null)));
                  // 查看根节点
                  System.out.println("ls / => " + zk.getChildren("/", true));
              }
      
              // 创建一个子目录节点
              if (zk.exists("/node/sub1", true) == null) {
                  zk.create("/node/sub1", "sub1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
                  System.out.println("create /node/sub1 sub1");
                  // 查看node节点
                  System.out.println("ls /node => " + zk.getChildren("/node", true));
              }
      
              // 修改节点数据
              if (zk.exists("/node", true) != null) {
                  zk.setData("/node", "changed".getBytes(), -1);
                  // 查看/node节点数据
                  System.out.println("get /node => " + new String(zk.getData("/node", false, null)));
              }
      
              // 删除节点
              if (zk.exists("/node/sub1", true) != null) {
                  zk.delete("/node/sub1", -1);
                  zk.delete("/node", -1);
                  // 查看根节点
                  System.out.println("ls / => " + zk.getChildren("/", true));
              }
      
              // 关闭连接
              zk.close();
          }
      }
      
      ```
  
      运行结果(要等一会,一开始会有一些Warning)
  
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNQxT7Yf-1585491574683)(img/image-20200329214716360.png)]


zk.close();
}
}

      ```

运行结果(要等一会,一开始会有一些Warning)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDK17下,使用SHA1算法报Certificates do not conform to algorithm constraints错误

JDK17从17.0.5开始&#xff0c;默认不再允许使用SHA1算法&#xff0c;如果引用的jar包或代码里使用了SHA1算法&#xff0c;会报以下错误。 Caused by: javax.net.ssl.SSLHandshakeException: Certificates do not conform to algorithm constraintsat java.base/sun.security.…

SQL第16课——更新和删除数据

介绍如何利用update和delete语句进一步操作表数据。 16.1 更新数据 使用update语句。两种使用方式&#xff1a; 1. 更新表中的特定行&#xff1b; 2. 更新表中的所有行。 &#xff01;&#xff01;&#xff01;&#xff08;使用update时不要省略where子句&#xff0c;因为…

vue+ant 弹窗可以拖动

通过自定义指令实现拖拽功能 在main.js里加入drag自定义指令 我自己测试时发现modal不管如何设置宽度&#xff0c;居中等&#xff0c;他的初始的left都为0&#xff0c;如果不设置好&#xff0c;容易出现点击后刚开始移动弹窗会偏移一段距离。 Vue.directive(drag, {bind(el)…

一些硬件知识【20241014】

BUCK电路中SW节点过冲怎么解决&#xff0c;什么原因产生&#xff1a; BUCK电路中电感感值过大会怎样&#xff1a; 所以buck电路中电感感值大小不是越大越好&#xff1a; 在以太网通信中&#xff0c;接口和码元是两个重要概念&#xff0c;它们涉及物理层和数据传输方式的不同方面…

黑马程序员-redis项目实践笔记1

目录 一、 基于Session实现登录 发送验证码 验证用户输入验证码 校验登录状态 Redis代替Session登录 发送验证码修改 验证用户输入验证码 登录拦截器的优化 二、 商铺查询缓存 缓存更新策略 数据库和缓存不一致解决方案 缓存更新策略的最佳实践方案 实现商铺缓…

【1-1】STM32F407学习笔记之中断

一、异常与中断的概念 《Cortex M3与M4权威指南》章节4.5 P104-106 翻译:异常(Exceptions)在编程中是指那些导致程序流程改变的事件。当异常发生时,处理器会暂停当前执行的任务,转而执行一个称为异常处理程序(exception handler)的程序部分。处理完毕后,处理器会恢…

uniapp微信小程序调用百度OCR

uniapp编写微信小程序调用百度OCR 公司有一个识别行驶证需求&#xff0c;调用百度ocr识别 使用了image-tools这个插件&#xff0c;因为百度ocr接口用图片的base64 这里只是简单演示&#xff0c;accesstoken获取接口还是要放在服务器端&#xff0c;不然就暴露了自己的百度项目k…

Cherno游戏引擎笔记(61~72)

---------------一些维护和更改------------- 》》》》 Made Win-GenProjects.bat work from every directory 代码更改&#xff1a; echo off->pushd ..\->pushd %~dp0\..\call vendor\bin\premake\premake5.exe vs2019popdPAUSE 为什么要做这样的更改&#xff1f; …

【C++】STL--stack

1. stack的介绍 stack的文档介绍 后进先出&#xff08;LIFO&#xff09;&#xff1a;Stack容器遵循后进先出的原则&#xff0c;即最后进入栈的元素最先被移出栈。 2.stack的使用 常用的几个接口 代码演示如下 int main() {stack<int> st;st.push(1);st.push(2);st.…

一句话木马的多种变形方式

今天来和大家聊一聊&#xff0c;一句话木马的多种变形方式。 经常有客户的网站碰到被上传小马和大马&#xff0c;这里的“马”是木马的意思&#xff0c;可不是真实的马。 通常&#xff0c;攻击者利用文件上传漏洞&#xff0c;上传一个可执行并且能被解析的脚本文件&#xff0c;…

软件测试之基础的“管理岗”

1、是否需要选择管理岗&#xff1f; 建议&#xff1a;如果个人有机会成为管理岗&#xff0c;那就抓紧了。 原因很简单&#xff0c;我认为市场的行业发展是这个样子的&#xff0c;专业化的技术人员一定是市场缺失的人才&#xff0c;但是相比较而言&#xff0c;管理者会更加被公…

实验室信息系统(LIS)源码,.Net C#语言开发C/S架构,支持DB2,Oracle,MS SQLServer等主流数据库

实验室管理信息系统LIS从属于HIS系统&#xff0c;严格意义上讲&#xff0c;它是HIS系统的一个子系统。众所周知的是&#xff0c;LIS系统的主要功能是将检验仪器传出的检验数据经分析后&#xff0c;生成检验报告&#xff0c;通过网络存储在数据库中&#xff0c;使医生能够方便、…

Adobe Photoshop 2025(PS2025版) v26.0.0.26 中文版新功能特色

Photoshop 2025 是一款图像处理软件&#xff0c;它提供了许多强大的功能和工具&#xff0c;使用户能够对图像进行编辑、调整、修复、合成和设计。 Adobe Photoshop 2025新功能特色 图像编辑&#xff1a;支持各种图像编辑功能&#xff0c;如裁剪、调整色彩、修复照片、添加滤镜…

根据指定键对自定义 JSON 输出

要根据指定键对自定义 JSON 进行输出&#xff0c;通常的做法是&#xff1a; 解析 JSON 数据。按照用户给定的键提取或排序数据。重新构造并输出 JSON 数据。 这里有几个常见的场景&#xff1a; 提取特定键及其值。按特定键排序 JSON 数组。过滤掉不需要的键。 接下来&#…

华为FreeBuds 6i开降噪后底噪声大该如何解决?

华为FreeBuds 6i开了降噪会有沙沙的底噪声&#xff1f;最近看到一些小伙伴说这款耳机降噪效果比较好&#xff0c;但有时候在安静的环境下可以听到沙沙的底噪声&#xff0c;这是怎么回事&#xff1f; 我们先来聊一下降噪的原理&#xff1a;耳机内部的降噪系统通过麦克风采集外界…

智慧园区防护系统——提升园区安全性的关键工具

伴随着城市现代化推进&#xff0c;智慧园区已经成为当代城市基本建设不可或缺的一部分。智慧园区综合服务管理系统软件也被视为园区安全高效的关键工具之一。本文将从智慧园区安全性系统设计、作用、运用等多个方面详细的表述与分析。 一、设计 智慧园区防护系统设计方案应依据…

AI帮你读取总结数百个页面,AI搜索——未来的搜索引擎

AI搜索 引言实践测试kimi测试智谱测试 思考总结 引言 之前OpenAI O1刚上线时&#xff0c;就已称模型在使用COT思维链进行推理和自我反思后可以大大提升模型能力。最近Kimi和智谱都在内侧推出了AI搜索&#xff0c;使用下来感觉效果非常炸裂。AI通过COT思维链拆解你的问题 快速…

云原生后端技术:构建高可靠、可扩展的现代应用

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

iPhone变身健康卫士,假期作息紊乱不再怕

由于长假&#xff0c;许多人的作息时间表可能已经完全被打乱。晚上熬夜追剧、白天睡到自然醒&#xff0c;这样的生活虽然惬意&#xff0c;但对我们的身体健康却是个不小的挑战。幸运的是&#xff0c;iPhone手机内置的一系列健康功能&#xff0c;可以帮助我们重新找回规律的生活…

布隆过滤器原理及优缺点详解!

文章目录 引言工作原理示例展示优缺点优点缺点 使用场景总结 引言 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种概率型数据结构&#xff0c;用于判断一个元素是否属于一个集合。它特别擅长处理大规模数据的快速查找&#xff0c;具有高效的空间利用率和查询速度。下面…