“监听 Znode 节点”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“<syntaxhighlight lang="java"> package org.example; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.recipes.cache.ChildD…”的新页面)
 
 
第41行: 第41行:
 
}
 
}
  
</syntaxhighlight>./zkCli.sh 命令行<syntaxhighlight lang="shell-session">
+
</syntaxhighlight>
 +
 
 +
 
 +
 
 +
./zkCli.sh 命令行<syntaxhighlight lang="shell-session">
 
[zk: localhost:2181(CONNECTED) 5] set /qf qqqqq
 
[zk: localhost:2181(CONNECTED) 5] set /qf qqqqq
 
[zk: localhost:2181(CONNECTED) 6] set /qf ppppp
 
[zk: localhost:2181(CONNECTED) 6] set /qf ppppp
 
[zk: localhost:2181(CONNECTED) 7]  
 
[zk: localhost:2181(CONNECTED) 7]  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
  
 
IntelliJ IDEA 控制台
 
IntelliJ IDEA 控制台

2022年8月17日 (三) 12:03的最新版本

package org.example;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.NodeCache;
import org.apache.curator.framework.recipes.cache.NodeCacheListener;
import org.apache.zookeeper.data.Stat;
import org.junit.Test;

import java.nio.charset.StandardCharsets;

public class Demo3 {

    CuratorFramework cf = ZkUtil.cf();

    @Test
    public void listen() throws Exception {
        //1.创建 NodeCache 对象,指定要监听的 Znode
        NodeCache nodeCache = new NodeCache(cf, "/qf");
        nodeCache.start();

        //2.添加一个监听器
        nodeCache.getListenable().addListener(new NodeCacheListener() {
            @Override
            public void nodeChanged() throws Exception {
                ChildData childData = nodeCache.getCurrentData();
                byte[] data = childData.getData();
                Stat stat = childData.getStat();
                String path = childData.getPath();
                System.out.println("监听的节点是:" + path);
                System.out.println("节点现在的数据是:" + new String(data, StandardCharsets.UTF_8));
                System.out.println("当前节点的状态是:" + stat);
            }
        });
        System.out.println("开始监听......");
        //3.System.in.read();
        System.in.read();

    }
}


./zkCli.sh 命令行

[zk: localhost:2181(CONNECTED) 5] set /qf qqqqq
[zk: localhost:2181(CONNECTED) 6] set /qf ppppp
[zk: localhost:2181(CONNECTED) 7]


IntelliJ IDEA 控制台

开始监听......
监听的节点是:/qf
节点现在的数据是:qqqqq
当前节点的状态是:8589934594,17179869215,1660698163875,1660716077866,2,0,0,0,5,0,8589934594

监听的节点是:/qf
节点现在的数据是:ppppp
当前节点的状态是:8589934594,17179869217,1660698163875,1660716102689,3,0,0,0,5,0,8589934594