zoukankan      html  css  js  c++  java
  • java连接zookeeper集群

    1.导入依赖

           <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.11</version>
            </dependency>   

    测试类

    class DemoApplicationTests {
    
        @Test
        void contextLoads() throws IOException {
            //zookeeper地址,链接超时时间(毫秒),会话超时时间(毫秒),序列号
            ZkClient ZkClient = new ZkClient("ip:2181,ip:2182,ip:2183",1000,10000,new CustomerSerializer());
            //创建
            //ZkClient.create("/mo46a","a123", CreateMode.PERSISTENT);
            //修改
            //ZkClient.writeData("/mo46a","123");
            //查询
            //Object readData = ZkClient.readData("/mo46a");
            //System.out.println(readData);
            //删除
            //ZkClient.delete("/mo46a");
            //监听
            ZkClient.subscribeDataChanges("/mo46a", 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.subscribeChildChanges("/mo46a", new IZkChildListener() {
                @Override
                public void handleChildChange(String s, List<String> list) throws Exception {
    
                }
            });
            System.out.println(1);
            System.in.read();
        }
    
    }

    CustomerSerializer类

    import org.I0Itec.zkclient.exception.ZkMarshallingError;
    import org.I0Itec.zkclient.serialize.ZkSerializer;
    
    import java.io.UnsupportedEncodingException;
    
    public class CustomerSerializer implements ZkSerializer {
    
        private String charset="UTF-8";
    
        public CustomerSerializer() {
        }
    
        public CustomerSerializer(String charset) {
            this.charset = charset;
        }
    
        //序列号
        @Override
        public byte[] serialize(Object o) throws ZkMarshallingError {
            byte[] bytes=null;
            try {
                bytes=String.valueOf(o).getBytes(charset);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return bytes;
        }
        //反序列化
        @Override
        public Object deserialize(byte[] bytes) throws ZkMarshallingError {
            String result=null;
            try {
                result=new String(bytes,charset);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return result;
        }
    }
  • 相关阅读:
    Socket和数据库的一些使用---郭雪彬
    懒加载--初步理解. by:王朋
    自定义带图片和文字的Button的排版--陈棚
    一些开源库分享 ---严焕培
    实现“手机qq”侧滑菜单 -- 吴欧
    iOS 小技巧总结
    Responder一点也不神秘————iOS用户响应者链完全剖析 周傅琦君
    通过版本号来判断用户是否是第一次登陆----By张秀清
    常用第三方推荐
    static, const 和 static const 变量的初始化问题
  • 原文地址:https://www.cnblogs.com/mo46/p/13600479.html
Copyright © 2011-2022 走看看