您的位置:首页 > 其它

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

2015-03-01 22:38 405 查看

一、创建会话

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: