Red de conocimiento informático - Material del sitio web - Cómo utilizar Curator para operar el cuidador del zoológico

Cómo utilizar Curator para operar el cuidador del zoológico

Curator es el marco de cliente ZooKeeper de código abierto de Netflix. Es relativamente simple y conveniente usarlo para operar zookeeper. Según la metáfora oficial de Curator, de guayaba a JAVA, de Curator a Zookeeper, Curator utiliza un estilo de codificación fluido, que es muy simple.

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)

.retryPolicy(rp);

constructor.namespace(nameSpace);

CuratorFramework zclient = builder.build();

zkclient= zclient;

zkclient.start(); // Ponlo al frente y ejecútalo

. p> zkclient.newNamespaceAwareEnsurePath(nameSpace);

}

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);

}

/**

*@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!");

}

}