• ZooKeeper(3.4.5)


    一、创建会话

    1. 创建会话

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    
    /**
     * 使用Curator创建会话
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.newClient(
                    "192.168.1.109:2181",                    // 服务器列表
                    5000,                                    // 会话超时时间,单位毫秒
                    3000,                                    // 连接创建超时时间,单位毫秒
                    new ExponentialBackoffRetry(1000, 3)     // 重试策略
            );
            client.start();
            
            client.close();
        }    
    }

    2. 使用链式风格的API接口创建会话

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    
    /**
     * 使用链式风格的API接口创建会话
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                    .connectString("192.168.1.109:2181")
                    .sessionTimeoutMs(5000)
                    .connectionTimeoutMs(3000)
                    .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                    .build();
            client.start();
            
            client.close();
        }    
    }

    二、创建节点

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    import org.apache.zookeeper.CreateMode;
    
    /**
     * 使用Curator创建节点
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.109:2181")
                .sessionTimeoutMs(5000)
                .connectionTimeoutMs(3000)
                .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                .build();
            client.start();
            
            client.create()
                .creatingParentsIfNeeded()
                .withMode(CreateMode.PERSISTENT)
                .forPath("/zk-huey/cnode", "hello".getBytes());
            
            client.close();
        }    
    }

    三、删除节点

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    import org.apache.zookeeper.CreateMode;
    
    /**
     * 使用Curator删除节点
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.109:2181")
                .sessionTimeoutMs(5000)
                .connectionTimeoutMs(3000)
                .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                .build();
            client.start();
            
            client.create()
                .creatingParentsIfNeeded()
                .withMode(CreateMode.PERSISTENT)
                .forPath("/zk-huey/cnode", "hello".getBytes());
            
            client.delete()
                .guaranteed()
                .deletingChildrenIfNeeded()
                .withVersion(-1)
                .forPath("/zk-huey");
            
            client.close();
        }    
    }

    四、读取节点数据

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.data.Stat;
    
    /**
     * 使用Curator读取节点数据
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.109:2181")
                .sessionTimeoutMs(5000)
                .connectionTimeoutMs(3000)
                .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                .build();
            client.start();
            
            client.create()
                .creatingParentsIfNeeded()
                .withMode(CreateMode.PERSISTENT)
                .forPath("/zk-huey/cnode", "hello".getBytes());
            
            Stat stat = new Stat();
            byte[] nodeData = client.getData()
                .storingStatIn(stat)
                .forPath("/zk-huey/cnode");
            System.out.println("NodeData: " + new String(nodeData));
            System.out.println("Stat: " + stat);
            
            client.close();
        }    
    }

    五、更新节点数据

    package com.huey.dream.demo;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.data.Stat;
    
    /**
     * 使用Curator更新节点数据
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.109:2181")
                .sessionTimeoutMs(5000)
                .connectionTimeoutMs(3000)
                .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                .build();
            client.start();
            
            client.create()
                .creatingParentsIfNeeded()
                .withMode(CreateMode.PERSISTENT)
                .forPath("/zk-huey/cnode", "hello".getBytes());
            
            client.setData()
                .withVersion(-1)
                .forPath("/zk-huey/cnode", "world".getBytes());
            
            client.close();
        }    
    }

    六、 获取子节点列表

    package com.huey.dream.demo;
    
    import java.util.List;
    
    import org.apache.curator.framework.CuratorFramework;
    import org.apache.curator.framework.CuratorFrameworkFactory;
    import org.apache.curator.retry.ExponentialBackoffRetry;
    import org.apache.zookeeper.CreateMode;
    
    /**
     * 使用Curator
     * @author  huey
     * @version 1.0 
     * @created 2015-3-1
     */
    public class CarutorDemo {
    
        public static void main(String[] args) throws Exception {
            CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.109:2181")
                .sessionTimeoutMs(5000)
                .connectionTimeoutMs(3000)
                .retryPolicy(new ExponentialBackoffRetry(1000, 3))
                .build();
            client.start();
            
            client.create()
                .creatingParentsIfNeeded()
                .withMode(CreateMode.PERSISTENT)
                .forPath("/zk-huey/cnode", "hello".getBytes());
            
            List<String> children = client.getChildren().forPath("/zk-huey");
            System.out.println("Children: " + children);
            
            client.close();
        }    
    }
  • 相关阅读:
    设计模式网页资料
    委托的begininvoke
    C# 给某个方法设定执行超时时间
    C#中的Invoke----control上的以及delegate的是不一样的
    如何在windows中部署Gitblit
    sqlserver数据库出错的解决方法
    追索权 Eclipse + NDK error: stray &#39;24&#39; in program
    Linux课程_系统配置和日常维护
    1007: 童年二三事
    开源:矿Android新闻client,快、小、支持离线阅读、操作简单、内容丰富,形式多样展示、的信息量、全功能 等待(离开码邮箱)
  • 原文地址:https://www.cnblogs.com/huey/p/4307724.html
Copyright © 2020-2023  润新知