ZooKeeper(3.4.5) - 开源客户端 Curator(2.7.0) 的简单示例

一、创建会话

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();

    }    

}

 

你可能感兴趣的:(zookeeper)