十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要講解了“Zookeeper Znode實(shí)例分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Zookeeper Znode實(shí)例分析”吧!
成都創(chuàng)新互聯(lián)是少有的做網(wǎng)站、成都網(wǎng)站建設(shè)、營銷型企業(yè)網(wǎng)站、小程序定制開發(fā)、手機(jī)APP,開發(fā)、制作、設(shè)計(jì)、外鏈、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年成立,堅(jiān)持透明化,價(jià)格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
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:會話結(jié)束年結(jié)點(diǎn)自動(dòng)被刪除,EPHEMERAL結(jié)點(diǎn)不允許有子節(jié)點(diǎn) * SEQUENTIAL:節(jié)點(diǎn)名末尾會自動(dòng)追加一個(gè)10位數(shù)的單調(diào)遞增的序號,同一個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn)序號是單調(diào)遞增的 * PERSISTENT_SEQUENTIAL:結(jié)合PERSISTENT和SEQUENTIAL * EPHEMERAL_SEQUENTIAL:結(jié)合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é)點(diǎn) 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); Listchildren = 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é)點(diǎn),請注意區(qū)分,尤其是在重復(fù)create Sequenal的節(jié)點(diǎn)的過程之中。編號不一定會保持連續(xù)的狀態(tài) 。
1:Zookeeper的連接地址一般要寫多個(gè)
2:ACL 權(quán)限不是遞歸的,它只針對當(dāng)前的節(jié)點(diǎn),對子節(jié)點(diǎn)沒有任何的影響
3:默認(rèn)的情況下日志文件和數(shù)據(jù)文件是放在同一個(gè)目錄之下。
4:
默認(rèn)情況下日志文件和數(shù)據(jù)文件是放在同一個(gè)目錄下的,為縮短延遲提高響應(yīng)性,你可以把日志文件單獨(dú)放在另一個(gè)目錄下。
為避免swaping,運(yùn)行java時(shí)最好把可用物理內(nèi)在調(diào)得大一些,比如對于4G的內(nèi)在,可以把它調(diào)到3G。java有以下兩個(gè)運(yùn)行參數(shù):
-Xms
設(shè)置虛擬機(jī)可用內(nèi)存堆的初始大小,缺省單位為字節(jié),該大小為1024的整數(shù)倍并且要大于1MB,可用k(K)或m(M)為單位來設(shè)置較大的內(nèi)存數(shù)。初始堆大小為2MB。
例如:-Xms6400K,-Xms256M
-Xmx
設(shè)置虛擬機(jī)內(nèi)存堆的最大可用大小,缺省單位為字節(jié)。該值必須為1024整數(shù)倍,并且要大于2MB??捎胟(K)或m(M)為單位 來設(shè)置較大的內(nèi)存數(shù)。缺省堆最大值為64MB。
例如:-Xmx81920K,-Xmx80M
感謝各位的閱讀,以上就是“Zookeeper Znode實(shí)例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Zookeeper Znode實(shí)例分析這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!