这篇文章主要讲解了“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实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。