|
ZooKeeper——入门
博客分类:
ZooKeeper
1.从http://zookeeper.apache.org下载最新版本的ZooKeeper(当前最新版为zookeeper-3.4.5)
2.$ tar zxf zookeeper-3.4.5.tar.gz解压
3.在conf目录下创建配置文件zoo.cfg
Java代码
- tickTime=2000
- dataDir=/home/lan/zookeeper
- clientPort=2181
tickTime=2000
dataDir=/home/lan/zookeeper
clientPort=2181
tickTime是发送心跳包的时间间隔
dataDir用于存储Zookeeper的内存数据库快照和更新事务日志(日志目录可另外配置)
clientPort端口用于监听客户端连接
4.启动ZooKeeper
5.连接ZooKeeper
5.在shell中通过help命令查看客户端可以执行哪些命令
6.通过ls命令查看根目录
7.创建一个znode
8.读取znode
9.修改znode
10.删除znode
package zookeeper.demo;
-
import java.io.IOException;
import java.util.List;
import java.util.concurrent.CountDownLatch;
-
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
-
public class ZooKeeperTestCase implements Watcher {
-
- private static ZooKeeper zk;
- private String path;
- private Stat stat;
- private static CountDownLatch countDown = new CountDownLatch(1);
-
- public ZooKeeperTestCase(){
- if(zk == null){
- try {
- System.out.println("Starting ZK:");
- zk = new ZooKeeper("192.168.202.129", 3000, this);
- countDown.await();
- System.out.println("Finished starting ZK: " + zk);
- } catch (IOException e) {
- zk = null;
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
-
- @Override
- public void process(WatchedEvent event) {
- if(event.getState() == KeeperState.SyncConnected){
- countDown.countDown();
- }
- System.out.println("-----"+event.getState());
- }
-
- public void create() throws KeeperException, InterruptedException{
- path = zk.create("/zk_java", "java_binding".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
- System.out.println("created znode:" + path);
- }
-
- public void list() throws KeeperException, InterruptedException{
- List<String> strings = zk.getChildren("/", true);
- System.out.println("list:"+strings);
- }
-
- public void exist() throws KeeperException, InterruptedException{
- stat = zk.exists(path, true);
- System.out.println("exits:"+stat.getDataLength());
- }
-
- public void get() throws KeeperException, InterruptedException{
- Stat stat = new Stat();
- byte[] data = zk.getData(path, true, stat);
- System.out.print(new String(data));
- System.out.println(stat);
- }
-
- public void set() throws KeeperException, InterruptedException{
- stat = zk.setData(path, "zk_ooxx".getBytes(), stat.getVersion());
- }
-
- public void delete() throws InterruptedException, KeeperException{
- zk.delete(path, stat.getVersion());
- }
-
- public void close() throws InterruptedException{
- zk.close();
- }
-
- public static void main(String[] args) throws Exception {
- ZooKeeperTestCase zkTest = new ZooKeeperTestCase();
-
- zkTest.list();
-
- zkTest.create();
- zkTest.list();
-
- zkTest.exist();
- zkTest.get();
-
- zkTest.set();
- zkTest.get();
-
- zkTest.delete();
- zkTest.list();
-
- zkTest.close();
- }
- }
|
|
|