文档章节

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

    

© 著作权归作者所有

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

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

次渠龙哥
06/26
0
0
ZooKeeper学习第三期---Zookeeper命令操作

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

卯金刀GG
2017/10/25
0
0
大数据教程(3.3):zookeeper简介

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

em_aaron
07/28
0
0
ZooKeeper架构设计及其应用要点

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

xionghuiCoder
2015/07/13
0
0
这可能是把ZooKeeper概念讲的最清楚的一篇文章

我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper ...

51CTO技术栈
09/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
33分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
37分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
46分钟前
1
0
android -------- Data Binding的使用 ( 六) 自定义属性

今天来说说DataBinding在自定义属性的使用 默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。 默认...

切切歆语
53分钟前
1
0
收邮件 下载附件

uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...;procedure SaveAttachmentsFromFile(FileName: String)var IdMessage: TIdMessage; MsgPart: Ti......

vga
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部