本地java判断zk节点是否存在
【README】java 本地連接zk集群,https://blog.csdn.net/PacosonSWJTU/article/details/111404364??
?
【1】判斷節(jié)點(diǎn)是否存在
/*** 測(cè)試 zk * @author pacoson**/ public class TestZK {/*** zk server 連接串 */private String connectString = "192.168.163.201:2181,192.168.163.202:2181,192.168.163.203:2181";/*** 超時(shí)時(shí)間*/private int sessionTimeout = 3000; /*** zk客戶端實(shí)例 */private ZooKeeper zkClient; /*** 0-獲取zk連接 * @throws IOException*/@Before public void init() throws IOException {/* 連接zk服務(wù)器 */zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {@Overridepublic void process(WatchedEvent event) {try {/*3-獲取子節(jié)點(diǎn)并監(jiān)控節(jié)點(diǎn)變化*/System.out.println("-------watcher start---------");zkClient.getChildren("/", true).stream().forEach(System.out::println);System.out.println("-------watcher end ---------");} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}});}/*** 4-判斷節(jié)點(diǎn)是否存在 * @throws InterruptedException * @throws KeeperException */@Testpublic void exist() throws KeeperException, InterruptedException {Stat stat = zkClient.exists("/shanghai", false);System.out.println(stat);}}log, 輸出的是 stat.toString() 方法? ?
-------watcher start--------- 12884901938,12884901938,1608390430303,1608390430303,0,0,0,0,13,0,12884901938我們看下 zkcli on centos 查看 zk節(jié)點(diǎn) /shanghai 的信息,如下:
[zk: localhost:2181(CONNECTED) 7] get /shanghai shanghai city cZxid = 0x300000032 ctime = Sat Dec 19 23:07:10 CST 2020 mZxid = 0x300000032 mtime = Sat Dec 19 23:07:10 CST 2020 pZxid = 0x300000032 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 13 numChildren = 0?
【2】 po出 Stat.toString()
public String toString() {try {java.io.ByteArrayOutputStream s =new java.io.ByteArrayOutputStream();CsvOutputArchive a_ = new CsvOutputArchive(s);a_.startRecord(this,"");a_.writeLong(czxid,"czxid");a_.writeLong(mzxid,"mzxid");a_.writeLong(ctime,"ctime");a_.writeLong(mtime,"mtime");a_.writeInt(version,"version");a_.writeInt(cversion,"cversion");a_.writeInt(aversion,"aversion");a_.writeLong(ephemeralOwner,"ephemeralOwner");a_.writeInt(dataLength,"dataLength");a_.writeInt(numChildren,"numChildren");a_.writeLong(pzxid,"pzxid");a_.endRecord(this,"");return new String(s.toByteArray(), "UTF-8");} catch (Throwable ex) {ex.printStackTrace();}return "ERROR";}| 序號(hào) | key | 描述 |
| 1 | cZxid | 創(chuàng)建事務(wù)編號(hào) |
| 2 | ctime | 創(chuàng)建時(shí)間 |
| 3 | mZxid | 修改事務(wù)編號(hào) |
| 4 | mtime | 修改時(shí)間 |
| 5 | pZxid | 最后更新的子節(jié)點(diǎn) |
| 6 | cversion | 子節(jié)點(diǎn)變化編號(hào) |
| 7 | dataVersion | 數(shù)據(jù)變化編號(hào) |
| 8 | aclVersion | 訪問(wèn)控制列表的變化號(hào) |
| 9 | ephemeralOwner | 若是臨時(shí)節(jié)點(diǎn),表示的是znode擁有者的session id,如果不是,則是0 |
| 10 | dataLength | znode的數(shù)據(jù)長(zhǎng)度 |
| 11 | numChildren | znode的子節(jié)點(diǎn)個(gè)數(shù) |
?
?
?
總結(jié)
以上是生活随笔為你收集整理的本地java判断zk节点是否存在的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 企业微信聊天记录能永久保存吗企业微信的聊
- 下一篇: 电脑防火墙怎么关如何设置电脑的防火墙设置