文档章节

Zookeeper【V3.4.6】-Programing Guide 1: Znode

止静
 止静
发布于 2014/11/04 14:50
字数 626
阅读 69
收藏 0
点赞 0
评论 0
import java.io.IOException;
import java.util.List;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooKeeper;

/**
 * 
 * Zookeeper目前的创建的模式为:
 * 
 * 
 * PPERSISTENT:创建后只要不删就永久存在 EPHEMERAL:会话结束年结点自动被删除,EPHEMERAL结点不允许有子节点
 * SEQUENTIAL:节点名末尾会自动追加一个10位数的单调递增的序号,同一个节点的所有子节点序号是单调递增的
 * PERSISTENT_SEQUENTIAL:结合PERSISTENT和SEQUENTIAL
 * EPHEMERAL_SEQUENTIAL:结合EPHEMERAL和SEQUENTIAL
 * 
 * @author Yin Shuai
 * 
 */
public class SequenceZnode {

	public static final int TIMEOUT = 3000;

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

		ZooKeeper zkp = new ZooKeeper("127.0.0.1:2181", TIMEOUT, null);

		try {

			zkp.create("/node1", "data1".getBytes(), Ids.OPEN_ACL_UNSAFE,
					CreateMode.PERSISTENT);

			if (zkp.exists("/node1", false) != null) {
				System.out.println("node1 exists now");
			}

			try {
				zkp.create("/node1", "data1".getBytes(), Ids.OPEN_ACL_UNSAFE,
						CreateMode.PERSISTENT);
			} catch (KeeperException e) {
				System.out.println("keeperException caught:" + e.getMessage());
			}

			zkp.close();

			// zookeeper的会话在这里重新再建立一次
			zkp = new ZooKeeper("127.0.0.1:2181", TIMEOUT, null);

			// 创建了一系列的持久化—顺序节点
			zkp.create("/node-", "same data".getBytes(), Ids.OPEN_ACL_UNSAFE,
					CreateMode.PERSISTENT_SEQUENTIAL);
			zkp.create("/node-", "same data".getBytes(), Ids.OPEN_ACL_UNSAFE,
					CreateMode.PERSISTENT_SEQUENTIAL);
			zkp.create("/node-", "same data".getBytes(), Ids.OPEN_ACL_UNSAFE,
					CreateMode.PERSISTENT_SEQUENTIAL);
			zkp.create("/node-", "same data".getBytes(), Ids.OPEN_ACL_UNSAFE,
					CreateMode.PERSISTENT_SEQUENTIAL);

			List<String> children = zkp.getChildren("/", null);

			for (String child : children) {
				System.out.println(child);
			}

			zkp.close();

		} catch (KeeperException e) {
			System.err.println("KeeperException have been caught:"
					+ e.getMessage());
		}

	}
}


     对于每一种类型的节点,请注意区分,尤其是在重复create Sequenal的节点的过程之中。编号不一定会保持连续的状态 。


1:Zookeeper的连接地址一般要写多个

2:ACL 权限不是递归的,它只针对当前的节点,对子节点没有任何的影响

3:默认的情况下日志文件和数据文件是放在同一个目录之下。

4:

默认情况下日志文件和数据文件是放在同一个目录下的,为缩短延迟提高响应性,你可以把日志文件单独放在另一个目录下。

为避免swaping,运行java时最好把可用物理内在调得大一些,比如对于4G的内在,可以把它调到3G。java有以下两个运行参数:

    -Xms<size>
            设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。
        例如:-Xms6400K,-Xms256M
      -Xmx<size>
设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为1024整数倍,并且要大于2MB。可用k(K)或m(M)为单位        来设置较大的内存数。缺省堆最大值为64MB。
     

       例如:-Xmx81920K,-Xmx80M

    

© 著作权归作者所有

共有 人打赏支持
止静
粉丝 120
博文 134
码字总数 125762
作品 0
东城
技术主管
ZooKeeper学习笔记三 ZooKeeper与Paxos

本文学习内容来自: 《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeep...

xundh ⋅ 04/27 ⋅ 0

阿里大数据攻城师教你怎样理解ZooKeeper(六)

Zookeeper是什么 是一个针对大型分布式系统的可靠协调系统; 提供的功能包括:配置维护、名字服务、分布式同步、组服务等; 目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效...

JAVA丶学习 ⋅ 04/13 ⋅ 0

大数据开发之zookeeper简介

首先安装hadooper必须安装zookeeper。 zookeeper在hadoop生态圈中起的非常重要的作用,一句话就是ZooKeeper是分布式系统中的协调系统。 浅谈zookeeper:zookeeper是什么? ZooKeeper是一个分布...

大数据陈斌 ⋅ 05/21 ⋅ 0

ZooKeeper的原理(转)

一、ZooKeeper的角色 领导者(Leader),负责进行投票的发起和决议,更新系统状态。 学习者(Learner),包括跟随者(Follower)和观察者(Observer),Follower用于接受客户端请求并想客户端...

easonjim ⋅ 2017/09/05 ⋅ 0

ZooKeeper的伪分布式集群搭建以及真分布式集群搭建

zk集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh -server [ip]:[port] 命令检测集群是否配置成...

ZeroOne01 ⋅ 04/24 ⋅ 0

ZooKeeper 可视化工具 - ZooHelper

ZooHelper 一款基于 PHP + ExtJS 开发的 ZooKeeper 可视化工具 工具特性 树形展示znode节点 支持znode节点CURD操作 下载地址 https://github.com/yoonper/ZooHelper 环境要求 Linux PHP >= 5...

YoonPer ⋅ 05/28 ⋅ 0

Zookeeper 环境搭建&zk命令详解

1. 安装 1.1 下载zookeeper 下载网址:http://www.apache.org/dyn/closer.cgi/zookeeper 1.2. 解压 1.3. 修改配置文件 默认端口2181 1.4. 启动 进入bin目录下 执行 2. 基本命令 参考文档:h...

FantJ ⋅ 04/24 ⋅ 0

Zookeeper笔记3——原理及其安装使用

Zookeeper到底能干什么? 1.配置管理:这个好理解。分布式系统都有好多机器,Zookeeper提供了这样的一种服务:一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴...

狂小白 ⋅ 01/25 ⋅ 0

zookeeper的应用和原理介绍,分享好文

来源:https://blog.csdn.net/gs80140/article/details/51496925 场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最...

xudongt ⋅ 06/13 ⋅ 0

zookeeper之基础学习篇

1.ZooKeeper简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提...

roubaoyin ⋅ 04/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 26分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 33分钟前 ⋅ 4

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部