當前位置:首頁 » 編程語言 » javazookeeper

javazookeeper

發布時間: 2022-08-08 14:20:12

⑴ zookeeper是java寫的還是c

Java
因為安裝 zk 需要安裝 JDK

⑵ java連接zookeeper集群,必須配置多個ip嗎

zookeeper的集群一般都是奇數,多採用三台伺服器,就是一個leader,兩個follower的模式,你只填一個IP,那就是單機模式

⑶ zookeeper一定要用java嗎

znode創建類型(CreateMode):

PERSISTENT 持久化節點

PERSISTENT_SEQUENTIAL 順序自動編號持久化節點,這種節點會根據當前已存在的節點數自動加 1

EPHEMERAL 臨時節點, 客戶端session超時這類節點就會被自動刪除

EPHEMERAL_SEQUENTIAL 臨時自動編號節點

[java] view plainprint?
/*
* ZookeeperTest.java
*/
package com.x.zookeeper;

import java.io.IOException;
import java.util.List;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.data.Stat;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
*
* @author http://blog.csdn.net/java2000_wl
* @version <b>1.0</b>
*/
public class ZookeeperTest {

private static final int SESSION_TIMEOUT = 30000;

public static final Logger LOGGER = LoggerFactory.getLogger(ZookeeperTest.class);

private Watcher watcher = new Watcher() {

public void process(WatchedEvent event) {
LOGGER.info("process : " + event.getType());
}
};

private ZooKeeper zooKeeper;

/**
* 連接zookeeper
* <br>------------------------------<br>
* @throws IOException
*/
@Before
public void connect() throws IOException {
zooKeeper = new ZooKeeper("localhost:2181,localhost:2182,localhost:2183", SESSION_TIMEOUT, watcher);
}

/**
* 關閉連接
* <br>------------------------------<br>
*/
@After
public void close() {
try {
zooKeeper.close();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

/**
* 創建一個znode
* 1.CreateMode 取值
* PERSISTENT:持久化,這個目錄節點存儲的數據不會丟失
* PERSISTENT_SEQUENTIAL:順序自動編號的目錄節點,這種目錄節點會根據當前已近存在的節點數自動加 1,然後返回給客戶端已經成功創建的目錄節點名;
* EPHEMERAL:臨時目錄節點,一旦創建這個節點的客戶端與伺服器埠也就是 session過期超時,這種節點會被自動刪除
* EPHEMERAL_SEQUENTIAL:臨時自動編號節點
* <br>------------------------------<br>
*/
@Test
public void testCreate() {
String result = null;
try {
result = zooKeeper.create("/zk001", "zk001data".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e) {
LOGGER.error(e.getMessage());
Assert.fail();
}
LOGGE

⑷ 如何啟動zookeeper-3.3.6

如何啟動zookeeper-3.3.6?

啟動zookeeper-3.3.6的方法:下載安裝配置zookeeper的伺服器環境-創建文件-設置許可權-編輯-重啟即可。

具體步驟:

一、登陸linux伺服器用cd 命令切換到/etc/rc.d/init.d/目錄下。

十、重啟即可。

⑸ java zookeeper怎麼清除緩存

掌握zookeeper事件監聽機制,非常重要,可以說是跨入了進階的門檻,只有掌握了如何監聽某個節點或路徑,我們才能在節點變化後,做一些我們想做的事,包括: 1,配置文件同步 2,主從切換 3,分布式隊列 4,分布式鎖

⑹ 如何解決java介面訪問ZooKeeper時的connectionloss錯誤

常見錯誤日誌如下:
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss

1. 原因:
是因為ZooKeeper建立連接時採用非同步操作,連接操作後並不能保證ZK連接已成功。如果在ZK連接成功前的這個小時間窗口去訪問ZK,就會碰到如上錯誤。
2. 解決思路
我們在新建ZK連接後要等一段時間,保證連接成功後再訪問ZK。

3. 網上比較贊同的解決方案:
主要利用兩個Java類:

(1)java.util.concurrent.CountDownLatch:
一個同步輔助類,類似倒數計數,直到計數器為0時才能對資源「解鎖」。未解鎖前等待該資源的進程只能被阻塞。

主要方法:
public CountDownLatch(int count); /* 構造函數,參數指定計數次數 */
public void countDown(); /* 當前線程調用此函數,則計數減一 */
public void await() throws InterruptedException; /* 此函數會一直阻塞當前線程,直到計時器的值為0為止 */

(2)org.apache.zookeeper.Watcher
ZooKeeper有一個很有用的功能,就是集群上每一個變化都可以通知到自定義的Watchcer。

⑺ java連接zookeeper的時候報錯,請問下是什麼原因啊

常見錯誤日誌如下:
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss

1. 原因:
是因為ZooKeeper建立連接時採用非同步操作,連接操作後並不能保證ZK連接已成功。如果在ZK連接成功前的這個小時間窗口去訪問ZK,就會碰到如上錯誤。
2. 解決思路
我們在新建ZK連接後要等一段時間,保證連接成功後再訪問ZK。

3. 網上比較贊同的解決方案:
主要利用兩個Java類:

(1)java.util.concurrent.CountDownLatch:
一個同步輔助類,類似倒數計數,直到計數器為0時才能對資源「解鎖」。未解鎖前等待該資源的進程只能被阻塞。

主要方法:
public CountDownLatch(int count); /* 構造函數,參數指定計數次數 */
public void countDown(); /* 當前線程調用此函數,則計數減一 */
public void await() throws InterruptedException; /* 此函數會一直阻塞當前線程,直到計時器的值為0為止 */

(2)org.apache.zookeeper.Watcher
ZooKeeper有一個很有用的功能,就是集群上每一個變化都可以通知到自定義的Watchcer。

熱點內容
JSL腳本與SAS編程 發布:2022-10-05 03:49:44 瀏覽:547
ETB存儲 發布:2022-10-05 03:46:27 瀏覽:646
php程序員書籍 發布:2022-10-05 03:44:21 瀏覽:626
android簡單游戲 發布:2022-10-05 03:43:27 瀏覽:339
釣魚牌密碼在哪裡找 發布:2022-10-05 03:39:55 瀏覽:125
java實現隊列 發布:2022-10-05 03:39:45 瀏覽:80
伺服器如何連接埠 發布:2022-10-05 03:39:35 瀏覽:665
蘋果內存和安卓內存有什麼不一樣 發布:2022-10-05 03:38:14 瀏覽:942
pythonetreexml 發布:2022-10-05 03:31:59 瀏覽:946
開游戲伺服器一定要公網ip嗎 發布:2022-10-05 03:31:56 瀏覽:266