文档章节

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

止静
 止静
发布于 2014/11/04 14:50
字数 626
阅读 69
收藏 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

    

© 著作权归作者所有

共有 人打赏支持
止静
粉丝 119
博文 134
码字总数 125762
作品 0
东城
技术主管
私信 提问
【分布式协调zookeeper】基础篇

一、zookeeper介绍 它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等 zookeeper做了什么? 1.命名服务 2.配置管理 3.集群管理 4.分布式...

次渠龙哥
06/26
0
0
ZooKeeper架构设计及其应用要点

ZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置管理等...

xionghuiCoder
2015/07/13
0
0
ZooKeeper基本讲解 & 集群构建 & 常用操作指令

一、ZooKeeper概述 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,是Google的Chubby一个开源实现,是Hadoop和Hbase的重要组件,它提供了一项基本服务:分布式锁服...

qw87112
06/28
0
0
大数据教程(3.3):zookeeper简介

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

em_aaron
07/28
0
0
ZooKeeper学习第三期---Zookeeper命令操作

一、Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper...

卯金刀GG
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
27分钟前
3
0
DecimalFormat 类基本使用

/* * DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度 * 0 表示如果位数不足则以 0 填充 * # 表示只要有可能就把数字拉上这个位置 * */ public static void main(String[] args){...

嘴角轻扬30
44分钟前
3
0
This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
今天
2
0
起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
今天
9
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部