Cómo utilizar Curator para operar el cuidador del zoológico
Veamos principalmente algunos ejemplos básicos del uso de Curator para operar zookeeper:
Funciones principales:
1 Agregar o actualizar datos en zk
.2. Eliminar los datos en el nodo zk
3. Leer los datos en un nodo determinado
4. Cargar algunos archivos locales en el nodo zk
5. Compruebe si la ruta del nodo existe en zookeeper
El código principal es el siguiente:
paquete com.qin.curator.zk
importar; java.io.File;
importar java.util.List;
importar org.apache.commons.io.FileUtils
importar org.apache. curador.CuratorZookeeperClient;
importar org.apache.commons.io.FileUtils;
importar org.apache.curator.CuratorZookeeperClient; p>
importar org.WatchedEvent;
p>importar org.apache.zookeeper.Watcher;
importar org.apache.zookeeper.ZKUtil;
importar framework.ZKUtilCrudExamples;
/ **
* @author qindogliang
* Operaciones del curador en el cuidador del zoológico
* Ejemplos básicos
* **/
clase pública CuratorTools {
static CuratorFramework zkclient=null;
static String nameSpace="php"
static {
String zkhost="192.168.46.22:.2181"; //host de zk
RetryPolicy rp=new ExponentialBackoffRetry(1000, 3); //mecanismo de reintento
Builder builder = CuratorFrameworkFactory .builder ().connectString(zkhost)
.connectionTimeoutMs(5000)
.sessionTimeoutMs(5000) p>
.retryPolicy(rp);
constructor.namespace(nameSpace);
CuratorFramework zclient = builder.build();
zkclient= zclient;
zkclient.start(); // Ponlo al frente y ejecútalo
. p> zkclient.newNamespaceAwareEnsurePath(nameSpace);
} p>
public static void main(String[] args )lanza una excepción {
CuratorTools ct=new CuratorTools(
);
//ct.ct.createrOrUpdate("/zk/cc334/zzz", "c");
//ct.delete("/qinb/bb"
//ct.checkExist("/zk");
ct.read("/jianli/123 .txt"); .close();
}
/**
* Crear o actualizar nodos
*
* @param ruta ruta
* @param contenido contenido
**/
public void createrOrUpdate(ruta de cadena, contenido de cadena) lanza excepción{
zkclient.newNamespaceAwareEnsurePath(ruta).ensure( zkclient.getZookeeperClient());
zkclient.setData().forPath(ruta, content.getBytes()); > System.out.println("¡¡Añadiendo correctamente!!!");
}
/**
* Eliminar nodo zk
* @param ruta ruta para eliminar el nodo
*
**/
public void eliminar (ruta de cadena) lanza una excepción{
zkclient.delete(.guaranteed());
zkclient.delete(.guaranteed();
zkclient.delete(.guaranteed());
zkclient.delete(.guaranteed())delete().guaranteed().deletingChildrenIfNeeded().forPath(ruta);
System.out.println("¡Eliminación exitosa! out.println( "¡La ruta no existe!") ;
}else{
System.out.println("¡La ruta ya existe!" ") ;
}
}
/**
* La ruta a leer
* @param ruta
**/
lectura nula pública (ruta de cadena) lanza una excepción{
datos de cadena = nueva cadena (zkclient.getData().forPath (ruta), "gbk");
System.out.println("Datos leídos: ¡La ruta existe! println("Datos leídos: " datos);
} p>
/**
*@pa
ruta de acceso ram ruta
* Obtener todos los archivos secundarios bajo un nodo
* */
public void getListChildren(Ruta de cadena)throws Exception{
Listlt; Stringgt.paths=zkclient.getChildren().forPath(ruta);
for(String p: rutas){
System.out.println(p);
}
}
/**
* @param zkPath La ruta en zk
* @ param ruta del archivo localpath en local
*
* ***/
carga pública vacía (String zkPath, String localpath) lanza una excepción{
createrOrUpdate(zkPath, ""); //Crear ruta
byte[] bs=FileUtils.readFileToByteArray(new File(localpath));
zkclient.setData( ) .forPath(zkPath, bs);
System.out.println("¡Subiendo el archivo correctamente!");
}
}