• java操作zookeeper


    Zookeeper的增删改查

    package top.campsis.zk;
    
    import org.I0Itec.zkclient.ZkClient;
    
    /**
     * @ClassName: TestCURD
     * @Author: campsis-tk
     * @Date: 2020/7/27 21:10
     * @Description:
     **/
    public class TestCURD {
    
    	private static final String ZkServer = "你的zookeeper地址";
    
    	private static ZkClient zkClient = null;
    
    	static {
    		zkClient = new ZkClient(ZkServer, 10000,10000);
    	}
    
    	public static void main(String[] args) {
    
    		/**
    		 * 创建一个节点
    		 */
    		String string = zkClient.create("/java", "hello,world", CreateMode.PERSISTENT);
    		System.out.println(string);
    
    		/**
    		 * 获取一个节点
    		 */
    		Object data = zkClient.readData("/java");
    		System.out.println(data);
    
    		/**
    		 * 重新设置一个节点的值
    		 */
    		zkClient.writeData("/java", "hello,java");
    
    		/**
    		 * 删除一个节点
    		 */
    		boolean delete = zkClient.delete("/java");
    		System.out.println(delete);
    
    		System.out.println(zkClient);
    	}
    }
    
    

    Zookeeper的序列化

    package top.campsis.zk;
    
    import org.I0Itec.zkclient.exception.ZkMarshallingError;
    import org.I0Itec.zkclient.serialize.ZkSerializer;
    
    import java.io.UnsupportedEncodingException;
    
    /**
     * @ClassName: CustomerSerializer
     * @Author: campsis-tk
     * @Date: 2020/7/27 21:35
     * @Description:
     **/
    public class CustomerSerializer implements ZkSerializer {
    
    	/** default utf 8 */
    	private String charset = "UTF-8";
    
    
    	public CustomerSerializer() {
    		// TODO Auto-generated constructor stub
    	}
    
    	public CustomerSerializer(String charset) {
    		this.charset = charset;
    	}
    
    	/**
    	 * 序列化
    	 */
    	public byte[] serialize(Object data) throws ZkMarshallingError {
    		try {
    			byte[] bytes = String.valueOf(data).getBytes(charset);
    			return bytes;
    		} catch (UnsupportedEncodingException e) {
    			throw new ZkMarshallingError("Wrong Charset:" + charset);
    		}
    	}
    
    	/**
    	 * 反序列化
    	 */
    	public Object deserialize(byte[] bytes) throws ZkMarshallingError {
    		String result = null;
    		try {
    			result = new String(bytes, charset);
    		} catch (UnsupportedEncodingException e) {
    			throw new ZkMarshallingError("Wrong Charset:" + charset);
    		}
    		return result;
    	}
    
    }
    

    Zookeeper监听器

    package top.campsis.zk;
    
    import org.I0Itec.zkclient.IZkDataListener;
    import org.I0Itec.zkclient.ZkClient;
    
    import java.io.IOException;
    
    /**
     * @ClassName: TestCURD
     * @Author: campsis-tk
     * @Date: 2020/7/27 21:10
     * @Description:
     **/
    public class TestListener {
    
    	private static final String ZkServer = "你的zookeeper地址";
    
    	private static ZkClient zkClient = null;
    
    	static {
    
    		zkClient = new ZkClient(ZkServer, 10000,10000,new CustomerSerializer("UTF-8"));
    	}
    
    	public static void main(String[] args) {
    
    		/**
    		 * 创建一个节点
    		 */
    		String string = zkClient.create("/java", "hello,world", CreateMode.PERSISTENT);
    		System.out.println(string);
    
    		/**
    		 * 监听/java节点的数据变化
    		 */
    		zkClient.subscribeDataChanges("/java", new IZkDataListener() {
    			public void handleDataChange(String s, Object o) throws Exception {
    				System.err.println(s + " :handleDataChange: " + o);
    			}
    
    			public void handleDataDeleted(String s) throws Exception {
    				System.err.println(s + " :handleDataDeleted");
    			}
    		});
    		System.err.println("启动成功!");
    		//不让程序结束
    		try {
    			System.in.read();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    		System.out.println(zkClient);
    	}
    }
    
    
  • 相关阅读:
    ★《唐琅探案》后记【2】
    ★《唐琅探案》后记【2】
    《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)
    《OD学hadoop》第一周0626
    《OD学hadoop》mac下使用VMware Fusion安装centos
    《OD学hadoop》第一周0625
    《OD学hadoop》第二阶段Java编程基础
    《OD学hadoop》Linux基础
    《OD学hadoop》Hadoop前置
    《OD学算法》常用算法集合
  • 原文地址:https://www.cnblogs.com/Campsis-tk/p/13387879.html
Copyright © 2020-2023  润新知