溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper Znode實例分析

發(fā)布時間:2021-12-23 14:14:45 來源:億速云 閱讀:141 作者: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目前的創(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實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI