成都网站建设设计

将想法与焦点和您一起共享

ZookeeperZnode实例分析

这篇文章主要讲解了“Zookeeper Znode实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Zookeeper Znode实例分析”吧!

成都创新互联是少有的做网站、成都网站建设、营销型企业网站、小程序定制开发、手机APP,开发、制作、设计、外链、推广优化一站式服务网络公司,于2013年成立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评

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

       例如:-Xmx81920K,-Xmx80M

感谢各位的阅读,以上就是“Zookeeper Znode实例分析”的内容了,经过本文的学习后,相信大家对Zookeeper Znode实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享名称:ZookeeperZnode实例分析
文章源于:http://chengdu.cdxwcx.cn/article/psdcph.html