项目中用的监听zookeeper节点信息变化(如何变化?,变化以后要如何做?待后续的了解)的方式,通过注册监听器,然后开启监听。
zookeeper简单操作类
package com.lancy.zookeeper;
import java.util.List;
import org.apache.curator.framework.CuratorFramework;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.Stat;
/**
* @ClassName: ZKCrudOperation
* @Description: zookeeper的简单操作
*
*/
public class ZKCrudOperation {
/**
*
* @Title: create
* @Description: this will create the given ZNode with the given data
* @param client
* @param path
* @param payload
*/
public static void create(CuratorFramework client, String path, byte[] payload) {
try {
client.create().forPath(path, payload);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: createEphemeral
* @Description:this will create the given EPHEMERAL ZNode with the given data
* @param client
* @param path
* @param payload
*
*/
public static void createEphemeral(CuratorFramework client, String path, byte[] payload) {
try {
client.create().withMode(CreateMode.EPHEMERAL).forPath(path, payload);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: createEphemeralSequential
* @Description: this will create the given EPHEMERAL-SEQUENTIAL ZNode with
* the given data using Curator protection.
* @param client
* @param path
* @param payload
* @return
*/
public static String createEphemeralSequential(CuratorFramework client, String path, byte[] payload) {
try {
return client.create().withProtection().withMode(CreateMode.EPHEMERAL_SEQUENTIAL).forPath(path, payload);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
*
* @Title: setData
* @Description:set data for the given node
* @param client
* @param path
* @param payload
*/
public static void setData(CuratorFramework client, String path, byte[] payload) {
try {
client.setData().forPath(path, payload);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: delete
* @Description:delete the given node
* @param client
* @param path
*/
public static void delete(CuratorFramework client, String path) {
try {
client.delete().forPath(path);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: guaranteedDelete
* @Description: delete the given node and guarantee that it completes
* @param client
* @param path
*/
public static void guaranteedDelete(CuratorFramework client, String path) {
try {
client.delete().guaranteed().forPath(path);
} catch (Exception e) {
e.printStackTrace();
}
}