您好,登錄后才能下訂單哦!
這篇文章主要講解了“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目前的創(chuàng)建的模式為: * * * PPERSISTENT:創(chuàng)建后只要不刪就永久存在 EPHEMERAL:會話結束年結點自動被刪除,EPHEMERAL結點不允許有子節(jié)點 * SEQUENTIAL:節(jié)點名末尾會自動追加一個10位數(shù)的單調遞增的序號,同一個節(jié)點的所有子節(jié)點序號是單調遞增的 * 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); // 創(chuàng)建了一系列的持久化—順序節(jié)點 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()); } } }
對于每一種類型的節(jié)點,請注意區(qū)分,尤其是在重復create Sequenal的節(jié)點的過程之中。編號不一定會保持連續(xù)的狀態(tài) 。
1:Zookeeper的連接地址一般要寫多個
2:ACL 權限不是遞歸的,它只針對當前的節(jié)點,對子節(jié)點沒有任何的影響
3:默認的情況下日志文件和數(shù)據文件是放在同一個目錄之下。
4:
默認情況下日志文件和數(shù)據文件是放在同一個目錄下的,為縮短延遲提高響應性,你可以把日志文件單獨放在另一個目錄下。
為避免swaping,運行java時最好把可用物理內在調得大一些,比如對于4G的內在,可以把它調到3G。java有以下兩個運行參數(shù):
-Xms<size>
設置虛擬機可用內存堆的初始大小,缺省單位為字節(jié),該大小為1024的整數(shù)倍并且要大于1MB,可用k(K)或m(M)為單位來設置較大的內存數(shù)。初始堆大小為2MB。
例如:-Xms6400K,-Xms256M
-Xmx<size>
設置虛擬機內存堆的最大可用大小,缺省單位為字節(jié)。該值必須為1024整數(shù)倍,并且要大于2MB??捎胟(K)或m(M)為單位 來設置較大的內存數(shù)。缺省堆最大值為64MB。
例如:-Xmx81920K,-Xmx80M
感謝各位的閱讀,以上就是“Zookeeper Znode實例分析”的內容了,經過本文的學習后,相信大家對Zookeeper Znode實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。