- 启动虚拟机,并且启动zookeeper集群并且进行相应的验证
然后检测一下防火墙状态,使其关闭
systemctl status firewalld.service
若显示
则为防火墙关闭,若显示为绿色active,则代表防火墙是开启的状态,此时需要执行下边的命令关闭防火墙
systemctl stop firewalld.service
再检测一下防火墙是否关闭
完成后,开始创建maven项目
选择File → New → MavenProject 开始创建Maven项目
或者File → other→ MavenProject
创建的Maven项目
创建Maven项目所必须的参数
添加pom.xml文件中的依赖,
<dependencies>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
</dependency>
</dependencies>
保存
maven更新jar (Alt+F5)(这一步也可能用不到)
然后在src/main/recources中添加log4j.properties
内容为:
log4j.rootLogger = INFO,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
保存
然后
- 在src/main/java中创建相应的包以及类
内容为:
package zkkk;
import org.apache.zookeeper.*;
public class zookeeper {
public static void main(String[] args) throws Exception{
ZooKeeper zk = new ZooKeeper("192.168.43.34:2181", 90000, new Watcher() {
#192.168.43.34为虚拟机IP,2181为端口号,如何查看,后边会提及
// 监控所有被触发的事件
public void process(WatchedEvent event) {
System.out.println("已经触发了" + event.getType() + "事件!");
}
});
// 创建一个目录节点
zk.create("/testRootPath2", "testRootData".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// 创建一个子目录节点
zk.create("/testRootPath2/testChildPathOne2", "testChildDataOne".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zk.getData("/testRootPath2",false,null)));
// 取出子目录节点列表
System.out.println(zk.getChildren("/testRootPath2",true));
// 修改子目录节点数据
zk.setData("/testRootPath2/testChildPathOne2","modifyChildDataOne".getBytes(),-1);
System.out.println("目录节点状态:["+zk.exists("/testRootPath2",true)+"]");
// 创建另外一个子目录节点
zk.create("/testRootPath2/testChildPathTwo2", "testChildDataTwo".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
System.out.println(new String(zk.getData("/testRootPath2/testChildPathTwo2",true,null)));
// 删除子目录节点
zk.delete("/testRootPath2/testChildPathTwo2",-1);
zk.delete("/testRootPath2/testChildPathOne2",-1);
// 删除父目录节点
zk.delete("/testRootPath2",-1);
// 关闭连接
zk.close();
}
}
保存 然后运行可以得到这样的结果
ps:关于如何查看IP和端口号
文件路径要根据自己的而实际情况来。。