温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Zookeeper Znode实例分析

发布时间:2021-12-23 14:14:45 来源:亿速云 阅读:144 作者:iii 栏目:云计算

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI