zoopkeeper java_java操作Zookeeper

Zookeeper

什么是Zookeeper

Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

1、zookeeper是为别的分布式程序服务的

2、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)

3、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统> 一名称服务等

4、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:

管理(存储,读取)用户程序提交的数据(类似namenode中存放的metadata);

并为用户程序提供数据节点监听服务;

启动单机

1.Zoolnspector文件

在里面创建一个data空文件夹

把conf里面的zoo....改成zoo.cfg

右键zoo.cfg以记事本打开,把data文件夹路径放里面

点击bin—zkServer.cmd和zkCli.cmd输入ls /回车完成

Zookeeper说明

创建节点(znode) 方法:

create:

提供了两套创建节点的方法,同步和异步创建节点方式。

同步方式:

参数1,节点路径《名称) : InodeName (不允许递归创建节点,也就是说在父节点不存在

的情况下,不允许创建子节点)

参数2,节点内容: 要求类型是字节数组(也就是说,不支持序列化方式,如果需要实现序

列化,可使用java相关序列化框架,如Hessian、Kryo框架)

参數3,节点权限: 使用Ids.OPEN_ACL_UNSAFE开放权限即可。(这个参数一般在权展

没有太高要求的场景下,没必要关注)

参数4,节点类型: 创建节点的类型: CreateMode,提供四种首点象型

PERSISTENT(持久节点)

PERSISTENT SEQUENTIAL(持久顺序节点)

EPHEMERAL(临时节点)

EPHEMERAL SEQUENTAL(临时顺序节点)

引入依赖

org.apache.zookeeper

zookeeper

3.4.6

Zookeeper客户端连接

实现增删改查

private static final String ZK_ADDRESS="0.0.0.0:2181";

private static final Integer ZK_TIMEOUT=2000;

public static void main(String[] args) throws IOException, InterruptedException, KeeperException {

//连接zookeeper

//步骤一:创建zookeeper对象

/*

参数一:代表连接地址

*/

ZooKeeper zooKeeper=new ZooKeeper(ZK_ADDRESS, ZK_TIMEOUT, new Watcher() {

//连接方法

@Override

public void process(WatchedEvent watchedEvent) {

System.out.println("成功建立连接!");

}

});

//创建节点

String result=zooKeeper.create("/zk01","zkvalue01".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

System.out.println("创建成功:"+result);

/* //更改节点

Stat stat = zooKeeper.setData("/zk01", "zkvalueset01".getBytes(), 0);

System.out.println("更改成功"+stat);*/

/*//获取节点

byte[] value = zooKeeper.getData("/zk01",false,new Stat());

System.out.println(new String(value,"UTF-8"));*/

/*//删除

zooKeeper.delete("/zk01",-1);*/

//关闭连接

zooKeeper.close();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值