zookeeper深入学习(1)

本文介绍ZooKeeper集群的搭建方法,并通过一个简单的Java示例演示如何使用ZooKeeper API进行节点的创建、读取、更新及删除等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、zookeeper的搭建

zk的搭建,集群,奇数台,一般最少3台。(一半以上提供服务,zk就正常),搭建步骤就不累述了。

2、基础功能

要学习zk,我们必须知道zk的核心功能,状态记录和监控。
基础功能描述:
create:在本地目录树中创建一个节点
delete:删除一个节点
exists:测试本地是否存在目标节点
get/set data: 从目标节点上读取 / 写数据
get/set ACL :获取 / 设置目标节点访问控制列表信息
get children :检索一个子节点上的列表
sync :等待要被传送的数据

3、增删改查的基础demo

import org.apache.zookeeper.*;

import java.io.IOException;

/**
 * zk test
 *
 * Created by tianjun on 2016/12/16 0016.
 */
public class SimpleDemo {
    //会话超时时间,设置为与系统一致
    private static final int SESSION_TIMEOUT = 30000;

    ZooKeeper zk = null;

    Watcher wh = new Watcher() {
        public void process(WatchedEvent watchedEvent) {
            System.out.println(watchedEvent.toString());
        }
    };

    private void createZKInstance() throws IOException{
        zk = new ZooKeeper("192.168.64.104:2181",SimpleDemo.SESSION_TIMEOUT,this.wh);
    }

    private void zkOperations() throws KeeperException, InterruptedException {
        System.out.println("1.创建zookeeper节点(znode:zoo2,数据:mydata2,权限:OPNE_ACL_UNSAFE,节点类型:Persisent");
        zk.create("/zoo2","mydata2".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        System.out.println("2.查看是否创建成功:");
        System.out.println(new String(zk.getData("/zoo2",false,null)));
        System.out.println("3.修改节点数据");
        zk.setData("/zoo2","tianjun2016".getBytes(),-1);
        System.out.println("4.查看是否修改成功:");
        System.out.println(new String(zk.getData("/zoo2",false,null)));
        System.out.println("5.删除节点");
        zk.delete("/zoo2",-1);
        System.out.println("6.查看节点是否被删除:");
        System.out.println("节点状态:[" + zk.exists("/zoo2",false)+"]");
    }

    private void zkClose() throws InterruptedException {
        if(zk != null){
            zk.close();
        }
    }

    public static void main(String[] args) throws InterruptedException, KeeperException, IOException {
        SimpleDemo dm = new SimpleDemo();
        dm.createZKInstance();
        dm.zkOperations();
        dm.zkClose();

    }
}

最后的结果:

1.创建zookeeper节点(znode:zoo2,数据:mydata2,权限:OPNE_ACL_UNSAFE,节点类型:Persisent
WatchedEvent state:SyncConnected type:None path:null
2.查看是否创建成功:
mydata2
3.修改节点数据
4.查看是否修改成功:
tianjun2016
5.删除节点
6.查看节点是否被删除:
节点状态:[null]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值