zookeeper的事件监听

源于蚂蚁课堂的学习,点击这里查看(老余很给力)

zookeeper之所以应用广泛,源自其强大的功能,本文主要演示其对文件节点支持事件监听的功能

事件监听,分为:监听节点内容,监听节点子元素,监听节点状态
ZkClient zkClient = new ZkClient("127.0.0.1:2181", 50000);
String path = "/my_servers";

监听子节点

zkClient.subscribeChildChanges(path, (s, list) -> list.forEach(e -> System.out.println(e)));

监听内容

zkClient.subscribeDataChanges(path +"/"+ "8081", 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 {
        System.out.println(s + "节点被移除~~~");
    }
});

监听状态

zkClient.subscribeStateChanges(new IZkStateListener(){

	@Override
	public void handleStateChanged(Watcher.Event.KeeperState keeperState) throws Exception {
		System.out.println(keeperState.name());
	}

	@Override
	public void handleNewSession() throws Exception {
		System.out.println("开启新回话");
	}

	@Override
	public void handleSessionEstablishmentError(Throwable throwable) throws Exception {
		System.out.println(throwable);
	}
});
原创文章 148 获赞 258 访问量 11万+

猜你喜欢

转载自blog.csdn.net/yxh13521338301/article/details/105966239