ZooKeeper客户端--java实现
来源:互联网 发布:论持久战的影响知乎 编辑:程序博客网 时间:2024/05/10 18:46
jar:
jline-0.9.94.jar
log4j-1.2.16.jar
netty-3.7.0.Final.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar————将zookeeper的tar.gz包直接解压,然后到指定路径去寻找
zookeeper-3.4.8.jar
下列三个jar可以去网上下载:
commons-pool2-2.2.jar
junit-4.8.2.jar
jedis-2.6.1.jar
Java实现—————定义常量:
private final static String TOOL_NAME = “ZooKeeper工具 “;
private final static String TOOL_VERSION = “V1.0”;
private final static String TOOL_AUTHOR = “Aaron yang”;
private final static String TOOL_COPYRIGHT = “©2017 Aaron 版权所有”;
// 相关命令编号private final static int ACTION_QUERY = 1;private final static int ACTION_CREATE = 2;private final static int ACTION_MODIFY = 3;private final static int ACTION_DELETE = 4;private final static int ACTION_CONFIG = 8;private final static int ACTION_ABOUT = 9;private final static int ACTION_QUIT = 0;// 默认配置信息private final static String DEFAULT_HOST = "192.168.80.11";private final static int DEFAULT_PORT = 2181;private final static int DEFAULT_TIMEOUT = 30000;// 当前配置信息private static String zkHost = DEFAULT_HOST;private static int zkPort = DEFAULT_PORT;private static int zkTimeout = DEFAULT_TIMEOUT;private static ZooKeeper zooKeeper = null;
java实现—————开始菜单:
public static void StartMenu() {
System.out.println(“**” + TOOL_NAME + ” ” + TOOL_VERSION + “**”);
System.out.println(ACTION_QUERY + “、查询目录信息”);
System.out.println(ACTION_CREATE + “、创建目录节点”);
System.out.println(ACTION_MODIFY + “、修改目录节点”);
System.out.println(ACTION_DELETE + “、删除目录节点”);
System.out.println(ACTION_CONFIG + “、设置连接信息”);
System.out.println(ACTION_ABOUT + “、关于程序”);
System.out.println(ACTION_QUIT + “、退出”);
System.out.println(“**********************”);
}
java实现————获取输入信息
public static String getCommand() { return getCommand("请输入命令", 1);}public static String getCommand(String message) { return getCommand(message, null, 100);}public static String getCommand(String message, int limit) { return getCommand(message, null, limit);}public static String getCommand(String message, String defaultValue) { return getCommand(message, defaultValue, 100);}public static String getCommand(String message, String defaultValue, int limit) { String strCommand = ""; try { do { System.out.println(); if (defaultValue == null) { System.out.print(message + ": "); } else { System.out.print(message + " [" + defaultValue + "]: "); } byte[] command = new byte[100]; System.in.read(command); strCommand = new String(command); strCommand = strCommand.replaceAll("\r\n", "").trim(); // 若存在默认值且直接输入回车,则直接使用默认值作为返回值 if (defaultValue != null && "".equals(strCommand)) { strCommand = defaultValue; } } while (strCommand.length() > limit); } catch (Exception e) { System.out.println("输入错误!!!"); } return strCommand;}
Java实现———–Query Data
public static void queryData() {
System.out.println(“查询目录节点“);
String zpath = getCommand("目录节点路径", "/App"); try { openZk(); // 取出子目录节点列表 System.out.println(zooKeeper.getChildren(zpath, true)); } catch (Exception e) { e.printStackTrace(); }}
Java实现———Create Data
public static void createData() {
System.out.println(“创建目录节点“);
String zpath = getCommand("目录节点路径", "/App"); String zdata = getCommand("目录节点数据", zpath); String zacl = getCommand("目录节点权限", "0"); String ztype = getCommand("目录节点类型", "E"); try { openZk(); zooKeeper.create(zpath, zdata.getBytes(), getAcl(zacl), getCreateMode(ztype)); } catch (Exception e) { e.printStackTrace(); }}
java实现———-Modify Data
public static void modifyData() {
System.out.println(“修改目录节点“);
String zpath = getCommand("目录节点路径", "/App"); String zdata = getCommand("目录节点数据", zpath); try { openZk(); zooKeeper.setData(zpath, zdata.getBytes(), -1); String parent = StringUtil.strLeftBack(zpath, "/"); System.out.println("目录节点状态:[" + zooKeeper.exists(parent, false) + "]"); } catch (Exception e) { e.printStackTrace(); }}
java实现———-Delete Data
public static void deleteData() {
System.out.println(“删除目录节点“);
String zpath = getCommand("目录节点路径", "/App"); String zversion = getCommand("目录节点路径", "-1"); try { openZk(); zooKeeper.delete(zpath, Integer.valueOf(zversion)); } catch (Exception e) { e.printStackTrace(); }}
java实现———–设置连接信息
/* 设置连接信息 /
public static void configConnection() {
System.out.println(“设置连接信息“);
do {
zkHost = getCommand(“请输入服务器地址”, zkHost);
zkPort = Integer.valueOf(getCommand(“请输入端口”, “” + zkPort));
zkTimeout = Integer.valueOf(getCommand(“请输入连接超时”, “” + zkTimeout));
try { // 创建一个与服务器的连接 zooKeeper = new ZooKeeper(zkHost + ":" + zkPort, zkTimeout, new Watcher() { // 监控所有被触发的事件 public void process(WatchedEvent event) { System.out.println("已经触发了[" + event.getType() + "]事件!"); } }); } catch (Exception e) { zooKeeper = null; e.printStackTrace(); } } while (zooKeeper == null); System.out.println(">>>测试连接成功!");}
java实现————打印详细信息
/* 关于 /
public static void about() {
System.out.println(“**关于” + TOOL_NAME + “******”);
System.out.println(“| 版本:” + TOOL_VERSION + ” |”);
System.out.println(“| 作者:” + TOOL_AUTHOR + ” |”);
System.out.println(“| |”);
System.out.println(“|版本更新: |”);
System.out.println(“|V0.1 |”);
System.out.println(“| 1.查询目录信息功能 |”);
System.out.println(“| 2.创建目录信息功能 |”);
System.out.println(“| 3.修改目录信息功能 |”);
System.out.println(“| 4.删除目录信息功能 |”);
System.out.println(“| 5.设置连接信息 |”);
System.out.println(“| |”);
System.out.println(“| ” + TOOL_COPYRIGHT + ” |”);
System.out.println(“*******************************”);
}
Java实现———–退出客户端
/* 退出 /
public static void exit() {
System.out.println(“谢谢使用,再见!”);
try {
closeZk();
Thread.sleep(1000);
} catch (Exception e) {
}
System.exit(0);
}
java实现———-打开zookeeper
private static ZooKeeper openZk() {
if(zooKeeper==null) {
// 创建一个与服务器的连接
try {
zooKeeper = new ZooKeeper(zkHost + “:” + zkPort, zkTimeout, new Watcher() {
// 监控所有被触发的事件 public void process(WatchedEvent event) { System.out.println("已经触发了[" + event.getType() + "]事件!"); } }); } catch (Exception e) { e.printStackTrace(); } } return zooKeeper;}
java实现——–关闭zookeeper
private static void closeZk() {
if(zooKeeper!=null) {
// 创建一个与服务器的连接
try {
zooKeeper.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
java实现——ACL
private static List getAcl(String zacl) {
return Ids.OPEN_ACL_UNSAFE;
}
java实现———-createMode
private static CreateMode getCreateMode(String ztype) {
if(“P”.equalsIgnoreCase(ztype)) {
return CreateMode.PERSISTENT;
} else if(“PS”.equalsIgnoreCase(ztype)) {
return CreateMode.PERSISTENT_SEQUENTIAL;
} else if(“E”.equalsIgnoreCase(ztype)) {
return CreateMode.EPHEMERAL;
} else{
return CreateMode.EPHEMERAL_SEQUENTIAL;
}
}
class:StringUtils ———–strLeftBack
public static String strLeftBack(final String text, String subtext) {
if (!hasText(text) || !hasText(subtext)) {
return “”;
}
int find = text.lastIndexOf(subtext);
return (find != -1) ? text.substring(0, find) : “”;
}
- ZooKeeper客户端--java实现
- Zookeeper JAVA客户端(Kotlin 实现) CRUD
- zookeeper 客户端的实现
- 【zookeeper】客户端 底层实现
- Zookeeper的Java客户端
- zookeeper的java客户端
- Zookeeper--Java客户端
- [ZooKeeper]ZooKeeper Java客户端ACL API
- zookeeper java客户端简单API
- zookeeper的Java客户端API
- zookeeper的java客户端api
- ZooKeeper 学习 (四) ZooKeeper Java客户端API使用
- zookeeper学习记录-07 Zookeeper Java 开源客户端
- ZooKeeper之java客户端访问-入门介绍
- zookeeper java 客户端ACL权限 使用
- Zookeeper Java客户端API的使用
- Zookeeper(四)Java客户端API使用
- Zookeeper(五)Java客户端节点操作
- dijkstra+dfs模板
- ubuntu 14.04 安装qq 2015
- 网站的安全校验
- 万用头文件#include<bits/stdc++.h>
- 处理listview的滑动冲突
- ZooKeeper客户端--java实现
- 免费织梦wap手机网站模板下载
- iOS仿淘宝,上拉进入详情页面
- linux下如何实现mysql数据库每天自动备份定时备份
- mapviewer deploy to Weblogic
- 学习之法 —— 概念、名词、术语与定义的学习
- javascript中this的四种用法
- 爬虫基础
- iOS倒计时设计思路和一个系统时间的坑