Zookeeper-api基础教程
第一关、创建会话与关闭
【题目来自头歌enducoder平台,有帮助的话,不忘点个赞、关注哟!】
import java.io.IOException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
public class test1 {// 初始化 ZooKeeper 实例 private ZooKeeper zk; // 实现一个 Watcher // 请在此处编写代码 /********* Begin *********/ private Watcher wh = new Watcher() { // 重写 process 方法 public void process(WatchedEvent event) { System.out.println(event); } }; /********* End *********/// 连接 ZooKeeper 服务器 private void createZKInstance() throws IOException { // 请在此处编写代码 /********* Begin *********/ zk = new ZooKeeper("localhost:2181", 15000, this.wh); /********* End *********/}// 断开连接 private void ZKClose() throws InterruptedException { // 请在此处编写代码 /********* Begin *********/ zk.close(); /********* End *********/ }public static void main(String[] args) throws IOException, InterruptedException{ test1 test = new test1(); // 连接 ZooKeeper 服务器 test.createZKInstance(); // 断开连接 test.ZKClose(); }
}
第二关、节点删除与创建
import org.apache.zookeeper.*;
import java.io.IOException;
public class Student { // 初始化 ZooKeeper 实例 private ZooKeeper zk; // 实现一个 Watcher private Watcher wh = new Watcher() { // 重写 process 方法 public void process(WatchedEvent event) { System.out.println(event); } };// 连接ZooKeeper服务器 public ZooKeeper createZKInstance() throws IOException { zk = new ZooKeeper("localhost:2181", 15000, this.wh); return zk; }// 使用同步方式删除节点 /mynode1 public void deleteNode() throws KeeperException, InterruptedException { // 请在此处编写代码 /********* Begin *********/ zk.delete("/mynode1",-1); /********* End *********/} // 使用异步方式创建节点 /mynode1 public void createNodeSync() { // 请在此处编写代码 /********* Begin *********/ String path = "/mynode1"; zk.create(path, "This node is mine!".getBytes(), ZooDefs.Ids.READ_ACL_UNSAFE, CreateMode.PERSISTENT,new test.MyStringCallback(),"CreateMynode!" ); /********* End *********/}
}
第三关、节点数据获取
import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;
import java.io.IOException;
public class Student { // 初始化 ZooKeeper 实例 private ZooKeeper zk; // 实现一个 Watcher private Watcher wh = new Watcher() { // 重写 process 方法 public void process(WatchedEvent event) { System.out.println(event); } }; // 连接ZooKeeper服务器 public ZooKeeper createZKInstance() throws IOException { zk = new ZooKeeper("localhost:2181", 15000, this.wh); return zk; }// 同步获取节点数据 public void getData() throws IOException, KeeperException, InterruptedException { // 请在此处编写代码 /********* Begin *********/ Stat stat = new Stat(); byte[] data = zk.getData("/myzk", wh, stat); System.out.println(new String(data)); /********* End *********/}
}
第四关、异步回调
import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;
import java.io.IOException;
public class Student { // 初始化 ZooKeeper 实例 private ZooKeeper zk; // 实现一个 Watcher private Watcher wh = new Watcher() { // 重写 process 方法 public void process(WatchedEvent event) { System.out.println(event); } }; // 连接ZooKeeper服务器 public ZooKeeper createZKInstance() throws IOException { zk = new ZooKeeper("localhost:2181", 15000, this.wh); return zk; }// 异步删除节点 public void deleteNode() throws IOException, KeeperException, InterruptedException { // 请在此处编写代码 /********* Begin *********/ Stat stat = new Stat(); zk.delete("/mycallnode",stat.getVersion(),new MyCallback(),"delete"); /********* End *********/} // 请在此处编写代码,完成回调函数的编写 /********* Begin *********/ public static class MyCallback implements AsyncCallback.VoidCallback{ // 重写 processResult 方法 @Override public void processResult(int i, String s, Object o) { // 输出上下文信息 System.out.println(o); } } /********* End *********/
}
Zookeeper-api基础教程相关推荐
- .NET Core Web API基础教程(案例)
.NET Core Web API基础教程(案例) 项目包含三个模板 GitHub地址 TodoItem (基础) Models/TodoItem Models/TodoContext Control ...
- Excel poi API基础教程!
原文转子: http://blog.csdn.net/yellowd1/article/details/44628701 登录 | 注册 yellowd1的专栏 目录视图 摘要视图 订阅 程序员12月 ...
- Spring Boot 2.x基础教程:Swagger静态API文档的生成
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | didispace.com/spring-boot-learni ...
- 抖音小程序基础之 目前提供哪些API(教程含源码)
抖音小程序基础之 目前提供哪些API(教程含源码) 小程序开发框架提供丰富的 字节跳动宿主 原生 API,可以方便的调起 字节跳动宿主 提供的能力,如获取系统信息等.详细介绍请参考 API 文档. 通 ...
- Spring Cloud Alibaba基础教程:与Dubbo的完美融合
很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...
- Spring Boot 2.x基础教程:使用Elastic Job实现定时任务
上一篇,我们介绍了如何使用Spring Boot自带的@Scheduled注解实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-1/ ...
- Spring Boot 2.x基础教程:使用JTA实现分布式事务
在一个Spring Boot项目中,连接多个数据源还是比较常见的.之前也介绍了如何在几种常用框架的场景下配置多数据源,具体可见: Spring Boot 2.x基础教程:JdbcTemplate的多数 ...
- Spring Boot 2.x基础教程:MyBatis的多数据源配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前两天,我们已经介绍了关于JdbcTemplate的多数 ...
- Spring Boot 2.x基础教程:使用MyBatis的XML配置方式
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...
- Spring Boot 2.x基础教程:使用国产数据库连接池Druid
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...
最新文章
- 十年架构师详解,Spring-IoC容器装配Bean
- 计算机软件系统包括应用软件和什么,计算机软件系统包括什么
- android中私有方法 继承,Android项目实战系列—基于博学谷(五)个人资料
- RC电路输出波形的时域与频域分析
- 你不知道的vscode之空间控制
- c++builder中dbgrid控件排序_如何实现APP中各种布局效果?学会这几个控件就够了...
- 安卓学习笔记18:常用控件 - 按钮、图像视图和图像按钮
- 模块间同步消息队列的设计
- 读书笔记《Java开发技术-在架构中体验设计模式和架构之美》
- flutter去掉输入框最大字数显示
- matlab与maple互联,编程语言与Maple联合使用教程
- 斗鱼自动刷屏脚本-javaScript斗鱼刷屏脚本-js刷屏脚本
- 2022-2027年中国缝制机械行业市场全景评估及发展战略规划报告
- 如何在Ubuntu下使用全民wifi?
- 推荐一个超级好用的正则匹配在线的网站
- 面试时问你对该公司有什么想法如何回答?
- java线程状态——java线程状态图
- goldenboy机器人_急求阿西莫夫机器人,基地,帝国三大系列的书名及其简介
- Linda Rising:“你相信谁?”
- 【JetPack+Retrofit+Rxjava】获取Bing每日一图并显示ViewModel+LiveData+DataBinding+MVVM 补充笔记