Zookeeper入门-Java版本HelloWorld例子

本文通过一个简单的Zookeeper HelloWorld示例,演示如何创建、读取、更新和删除节点。代码示例清晰地展示了ZooKeeper API的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

                上一篇介绍了,Zookeeper的基本概念,怎么启动,怎么解决可能遇到的几个问题。
本篇,根据网上代码,整理了一个例子,Zookeeper的HelloWorld。


下面这个代码,还是比较简单的,核心类就是org.apache.zookeeper.ZooKeeper。


我比较喜欢这种"框架",把最核心的服务,就用少数的几个类或者接口,供开发者使用。
开发者,不用知道那么多代码和细节。
这也提示我们,写代码的时候,把对外服务和对内实现,分开,设计好。


package cn.fansunion.zookeeper;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.ZooDefs.Ids;import org.apache.zookeeper.ZooKeeper; public class ZooKeeperTest {     private static final int TIME_OUT = 3000;    private static final String HOST = "localhost:2181"public static void main(String[] args) throws Exception{  ZooKeeper zookeeper = new ZooKeeper(HOST, TIME_OUT, null);        System.out.println("=========创建节点===========");        if(zookeeper.exists("/test", false) == null)        {         zookeeper.create("/test", "znode1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);        }        System.out.println("=============查看节点是否安装成功===============");        System.out.println(new String(zookeeper.getData("/test", false, null)));                System.out.println("=========修改节点的数据==========");        String data = "zNode2";  zookeeper.setData("/test", data.getBytes(), -1);                System.out.println("========查看修改的节点是否成功=========");        System.out.println(new String(zookeeper.getData("/test", false, null)));                System.out.println("=======删除节点==========");        zookeeper.delete("/test", -1);                System.out.println("==========查看节点是否被删除============");        System.out.println("节点状态:" + zookeeper.exists("/test", false));                zookeeper.close();    } }




运行结果
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
=========创建节点===========
=============查看节点是否安装成功===============
znode1
=========修改节点的数据==========
========查看修改的节点是否成功=========
zNode2
=======删除节点==========
==========查看节点是否被删除============
节点状态:null


以上代码,看不懂,根本没有关系。
懂了概念,知道了大致的API用法,后面就是深入学习。
Zookeeper怎么设计,API怎么用,怎么实现“分布式锁”。
有了良好的开端,上了道,就一步步提高了。


上次买了本Zookeeper的书,专门讲解Zookeeper的,还没来得及看。
最近看Android书籍,研究和运行代码。看Object-c和iOS,再写代码,太忙了。
Zookeeper的进一步深入学习,可能要再过一段时间了。




Maven配置
pom.xml
<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>cn.fansunion</groupId> <artifactId>ZookeeperDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <build>  <sourceDirectory>src</sourceDirectory>  <plugins>   <plugin>    <artifactId>maven-compiler-plugin</artifactId>    <version>3.1</version>    <configuration>     <source />     <target />    </configuration>   </plugin>  </plugins> </build> <dependencies>  <dependency>   <groupId>org.apache.zookeeper</groupId>   <artifactId>zookeeper</artifactId>   <version>3.4.6</version>  </dependency>  <dependency>   <groupId>org.slf4j</groupId>   <artifactId>slf4j-log4j12</artifactId>   <version>1.7.5</version>  </dependency>  <dependency>   <groupId>log4j</groupId>   <artifactId>log4j</artifactId>   <version>1.2.17</version>  </dependency> </dependencies></project>

           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

ZooKeeper是一个开源的分布式协调服务,它为分布式应用程序提供了一种高效、可靠的协调机制。以下是ZooKeeper入门介绍和初体验: ### ZooKeeper的基本概念 1. **节点(Znode)**:ZooKeeper的数据模型类似于文件系统,由一系列的节点(Znode)组成。每个节点可以包含数据,也可以包含子节点。 2. **会话(Session)**:客户端与ZooKeeper服务器之间的连接称为会话。会话用于维护客户端的状态和连接。 3. **观察者(Watcher)**:客户端可以设置观察者来监听节点的变化。一旦节点发生变化,观察者会触发相应的回调函数。 ### ZooKeeper的应用场景 1. **配置管理**:将配置信息存储在ZooKeeper的节点中,应用程序可以通过监听这些节点的变化来动态更新配置。 2. **分布式锁**:利用ZooKeeper的节点机制来实现分布式锁,确保多个客户端对共享资源的互斥访问。 3. **集群管理**:通过ZooKeeper来管理集群中的节点状态,确保集群的高可用性和一致性。 ### 初体验 #### 安装ZooKeeper 1. **下载ZooKeeper**: 从[ZooKeeper官网](https://zookeeper.apache.org/releases.html)下载最新版本ZooKeeper。 2. **解压安装**: ```bash tar -zxvf zookeeper-3.7.0.tar.gz cd zookeeper-3.7.0 ``` 3. **配置环境变量**: 在`~/.bashrc`或`~/.zshrc`中添加: ```bash export ZOOKEEPER_HOME=/path/to/zookeeper-3.7.0 export PATH=$PATH:$ZOOKEEPER_HOME/bin ``` 4. **启动ZooKeeper**: ```bash zkServer.sh start ``` #### 使用ZooKeeper 1. **连接ZooKeeper**: ```bash zkCli.sh -server 127.0.0.1:2181 ``` 2. **创建节点**: ```bash create /test "Hello, ZooKeeper" ``` 3. **读取节点数据**: ```bash get /test ``` 4. **设置观察者**: ```bash get /test watch ``` 5. **修改节点数据**: ```bash set /test "Hello, 优快云" ``` 6. **删除节点**: ```bash delete /test ``` ### 总结 ZooKeeper是一个强大的分布式协调服务,适用于各种分布式应用场景。通过简单的命令和API,开发者可以轻松地实现配置管理、分布式锁、集群管理等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值