码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-01 23:34:45      阅读:201      评论:0      收藏: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(3.4.5) 开源客户端Curator的简单示例

标签:

原文地址:http://www.cnblogs.com/huey/p/4307724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!