zookeeper路径信息变化(节点信息变化)监听实现

项目中用的监听zookeeper节点信息变化(如何变化?,变化以后要如何做?待后续的了解)的方式,通过注册监听器,然后开启监听。
zookeeper简单操作类

package com.lancy.zookeeper;

import java.util.List;
import org.apache.curator.framework.CuratorFramework;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.data.Stat;

/**
 * @ClassName: ZKCrudOperation
 * @Description: zookeeper的简单操作
 *
 */
public class ZKCrudOperation {
   
    /**
     * 
     * @Title: create
     * @Description: this will create the given ZNode with the given data
     * @param client
     * @param path
     * @param payload
     */
    public static void create(CuratorFramework client, String path, byte[] payload) {
        try {
            client.create().forPath(path, payload);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * @Title: createEphemeral
     * @Description:this will create the given EPHEMERAL ZNode with the given data
     * @param client
     * @param path
     * @param payload
     * 
     */
    public static void createEphemeral(CuratorFramework client, String path, byte[] payload) {
        try {
            client.create().withMode(CreateMode.EPHEMERAL).forPath(path, payload);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * @Title: createEphemeralSequential
     * @Description: this will create the given EPHEMERAL-SEQUENTIAL ZNode with
     *               the given data using Curator protection.
     * @param client
     * @param path
     * @param payload
     * @return
     */
    public static String createEphemeralSequential(CuratorFramework client, String path, byte[] payload) {

        try {
            return client.create().withProtection().withMode(CreateMode.EPHEMERAL_SEQUENTIAL).forPath(path, payload);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 
     * @Title: setData
     * @Description:set data for the given node
     * @param client
     * @param path
     * @param payload
     */
    public static void setData(CuratorFramework client, String path, byte[] payload) {

        try {
            client.setData().forPath(path, payload);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * @Title: delete
     * @Description:delete the given node
     * @param client
     * @param path
     */
    public static void delete(CuratorFramework client, String path) {

        try {
            client.delete().forPath(path);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * @Title: guaranteedDelete
     * @Description: delete the given node and guarantee that it completes
     * @param client
     * @param path
     */
    public static void guaranteedDelete(CuratorFramework client, String path) {
        try {
            client.delete().guaranteed().forPath(path);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值