java 调用zookeeper_zookeeper学习四:zookeeper在java中的使用

package com.ai.trial;

import java.io.IOException;

import org.apache.zookeeper.CreateMode;

import org.apache.zookeeper.KeeperException;

import org.apache.zookeeper.WatchedEvent;

import org.apache.zookeeper.Watcher;

import org.apache.zookeeper.ZooDefs.Ids;

import org.apache.zookeeper.ZooKeeper;

import org.apache.zookeeper.ZooKeeperMain;

class ZkUtil {

private static final String zkUrl = "192.168.179.127:2181";

private static final int sessionTimeout = 30000;

private static ZooKeeper zk;

private static final Watcher watcher = new Watcher() {

@Override

public void process(WatchedEvent event) {

System.out.println(event.toString());

}

};

/**

* 描述: 初始化zk实例

* @author shengyu

* @date:2019年8月8日 下午5:57:10

*/

public void createZkInstance(){

try {

zk = new ZooKeeper(zkUrl, sessionTimeout, watcher);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 描述: 关闭zk

* @author shengyu

* @date:2019年8月8日 下午5:57:29

*/

public void zkClose(){

try {

zk.close();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述: 创建普通节点(持久化节点)

* @author shengyu

* @date:2019年8月8日 下午5:57:36

*/

public void createNode(){

try {

zk.create("/zoo", "mydata".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

} catch (KeeperException | InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述: 获取指定节点数据

* @author shengyu

* @date:2019年8月8日 下午5:58:07

*/

public void getData(){

try {

System.out.println(new String(zk.getData("/zoo", false, null)));

} catch (KeeperException | InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述: 修改节点值

* @author shengyu

* @date:2019年8月8日 下午5:58:24

*/

public void setData(){

try {

zk.setData("/zoo", "修改后的数据".getBytes(), -1);

} catch (KeeperException | InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述: 删除节点

* @author shengyu

* @date:2019年8月8日 下午5:58:35

*/

public void deleteNode(){

try {

zk.delete("/zoo", -1);

} catch (KeeperException | InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述:查看节点状态

* @author shengyu

* @date:2019年8月8日 下午5:58:46

*/

public void existNode(){

try {

System.out.println("节点状态:"+zk.exists("/zoo", false));

} catch (KeeperException | InterruptedException e) {

e.printStackTrace();

}

}

/**

* 描述: 执行命令

* @author shengyu

* @param command

* @date:2019年8月8日 下午6:10:40

*/

public void executeCommandLine(String command){

ZooKeeperMain main = new ZooKeeperMain(zk);

try {

main.executeLine(command);

} catch (InterruptedException | IOException | KeeperException e) {

e.printStackTrace();

}

}

}

/**

* 描述: 测试类

* @author shengyu

* @date:2019年8月8日 下午6:00:01

*/

public class TestZk{

public static void main(String[] args) {

ZkUtil zkUtil = new ZkUtil();

zkUtil.createZkInstance();

//zkUtil.createNode();

//zkUtil.deleteNode();

//zkUtil.existNode();

zkUtil.executeCommandLine("ls /");

zkUtil.zkClose();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值