Zk监听机制入门和节点属性信息

zk监听主要是监听:节点创建,节点删除,节点改变、子节点改变
我这里用node-1和node-3同时连接node-1
zk客户端监听功能一般步骤:
1、客户端设置监听事件 命令:get 节点 watch (node-1上操作)
2、执行监听 命令:set 节点 改变内容 (node-3上操作)
3、触发事件、回调事件给客户端 node-1上会回调信息出来
监听机制的应用:高可用的切换,主备的切换

监听机制是一次性的、所以想要持续监听在回调事件之后设再次设置监听事件即可!!

watch机制特点:

一次性触发
事件发生触发监听,一个 watcher event 就会被发送到设置监听的客户端,
这种效果是一次性的,后续再次发生同样的事件,不会再次触发。

事件封装
ZooKeeper 使用 WatchedEvent 对象来封装服务端事件并传递。
WatchedEvent 包含了每一个事件的三个基本属性:
通知状态(keeperState) ,事件类型(EventType)和节点路径(path)

event 异步发送
watcher 的通知事件从服务端发送到客户端是异步的。

先注册再触发
Zookeeper 中的 watch 机制,必须客户端先去服务端注册监听,这样事件发
送才会触发监听,通知给客户端

方式二:java api 操作节点创建
开启idea:创建一个maven工程
导入jar包在pom文件:

<dependency> 
    <groupId>org.apache.zookeeper</groupId> 
    <artifactId>zookeeper</artifactId> 
    <version>3.4.9</version> 
</dependency

代码:

import org.apache.zookeeper.*;

import java.io.IOException;

public class TestZKClient {
    public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
        //通过创建客户端实例:参数(本地系统host文件映射后才能用node,会话超时时间,监听匿名内部类)
   ZooKeeper zk=  new ZooKeeper("node-1:2181,node-2:2181,node-3:2181", 3000, new Watcher() {
            public void process(WatchedEvent watchedEvent) {

            }
        });
   //创建节点(节点名称,数组)
        zk.create("/createbyjava","么么哒".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        //断开连接
        zk.close();
    }
}

查看:
命令:ls /
查看节点具体信息:get /createbyjava

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值