序【3-2】zookeeper客户端-zkClient

版权声明:未经本人同意不能转载。可联系 ( [email protected] ) https://blog.csdn.net/jaryn_fang/article/details/81545638

Java客户端

  • 首先我们需要搭建相应的zookeeper的环境,我们现在使用序【2】中利用docker的host模式搭建的zookeeper集群来测试客户端的连接。

zkClient

1. 测试zkClient连接zookeeper

1.1 maven配置
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.10</version>
    </dependency
1.2 测试连接java代码
package cn.jaryn.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class ConnOp {
    private static String CONN = "192.168.1.10:2001,192.168.1.10:2004,192.168.1.10:2007";

    public static void main(String[] args) {
        ZkClient zkClient = new ZkClient(CONN, 4000);

        System.out.println(zkClient + "- >  success");
    }
}

1.3 测试的结果如下

2 zkClient采常用操作

package cn.jaryn.zkclient;

import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.ZkClient;

import java.util.List;

public class ZookeeperOp {

    private static String CONN = "192.168.1.10:2001,192.168.1.10:2004,192.168.1.10:2007";

    private static ZkClient getInstance() {
      return  new ZkClient(CONN, 4000);
    }

    public static void main(String[] args) {
        ZkClient zkClient = getInstance();

        // 允许递归操作
        zkClient.createPersistent("/zkClientPar/chir" , true);
        // 递归删除
        zkClient.deleteRecursive("/zkClientPar");

        // 获取子节点
        List<String> list = zkClient.getChildren("/node");
        System.out.println(list);

        //事件
        zkClient.subscribeDataChanges("/node", new IZkDataListener() {
            @Override
            public void handleDataChange(String s, Object o) throws Exception {
                System.out.println("节点名称: "+ s + " - > " + "节点改变后的值: " + o);
            }

            @Override
            public void handleDataDeleted(String s) throws Exception {

            }
        });

        zkClient.writeData("/node", "node");
        System.out.println("success");
    }
}

猜你喜欢

转载自blog.csdn.net/jaryn_fang/article/details/81545638