• 向Zookeeper中注册内容以及从zookeeper中发现内容


    一、向Zookeeper中注册内容

    新建项目ZookeeperClient

    1 创建/demo

    使用zookeeper的客户端命令工具创建/demo

    ./zkCli.sh
    create /demos

    2 添加依赖

    
        
            org.apache.zookeeper
            zookeeper
            3.5.5
        
    

    3 编写代码

    创建类com.msb.MyApp。

    ZooDefs.Ids.OPEN_ACL_UNSAFE 表示权限。

    CreateMode.PERSISTENT_SEQUENTIAL 永久存储,文件内容编号递增。

    public static void main(String [] args){
        try {
            ZooKeeper zookeeper = new ZooKeeper("192.168.32.128:2181", 10000, new Watcher() {
                @Override
                public void process(WatchedEvent watchedEvent) {
                    System.out.println("获取连接");
                }
            });
            String content = zookeeper.create("/demo/nn", "content".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
            System.out.println("content"+content);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    

    4 查看上传数据

    ls -R / :查看列表

    get /demo/nn0000000002 :查看内容

    二、 从zookeeper中发现内容

    在原有项目中新建一个类,类中编写主方法。

    public static void main(String[] args) {
        try {
            ZooKeeper zookeeper = new ZooKeeper("192.168.32.128:2181", 10000, new Watcher() {
                @Override
                public void process(WatchedEvent watchedEvent) {
                    System.out.println("获取连接");
                }
            });
            //获取列表
            List list = zookeeper.getChildren("/demo", false);
            for (String child : list) {
                byte[] result = zookeeper.getData("/demo/" + child, false, null);
                System.out.println(new String(result));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

  • 相关阅读:
    mybatis-plus 根据任意字段saveOrUpdateBatch
    PGL图学习之基于GNN模型新冠疫苗任务[系列九]
    vmware安装centos7
    Java-API简析_java.net.Inet6Address类(基于 Latest JDK)(浅析源码)
    什么是代码签名证书中的“硬证书”?
    2023年新授的IBDP物理/化学/生物课程有何不同?
    关于Python hydra库(OmegaConf)(yaml)
    基于51单片机的篮球计分器设计
    【Verilog基础】10.偶分频和奇分频
    【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程
  • 原文地址:https://blog.csdn.net/listeningdu/article/details/128198683