Zookeeper Client基礎操作和Java調用

來源:互聯網
上載者:User

標籤:switch   ssi   cas   space   delete   tor   sys   用戶端   enc   

## Zookeeper

> Zookeeper目前用來做資料同步,再各個服務之前同步關鍵資訊

i.用戶端操作

1. 建立
create [-s] [-e] path data acl
-s 為順序節點 -e 為臨時節點(臨時節點在會話消失後即消失)
acl為許可權控制,許可權控制比較麻煩,而且只存在於此節點和此級,其子節點不受控制

2. 讀取
ls :
ls path
列出此節點下的所有子節點
get:
get path
擷取此節點的內容和屬性
3. 更新
set path data [version]
version為可選,選擇基於哪個版本更新
4. 刪除
delete path [version]
5. 許可權
在Zookeeper的那本書的第215頁有詳細介紹
這裡使用的是digest加密方式,使用Zookeeper提供的方法加密

ii. Java用戶端操作

代碼地址: ZKService.java

1. 初始化用戶端
```java
private CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(ZOOKEEPER的IP)
.retryPolicy(new ExponentialBackoffRetry(1000, 6))
.sessionTimeoutMs(5000)
.namespace(以哪個地址為基準)
.authorization(加密方式, 密碼)
.build();
```
2. 註冊監聽
```java
private void watch(String path) {
ExecutorService tp = Executors.newFixedThreadPool(2);
System.out.println(Thread.currentThread().getName());
PathChildrenCache cache = new PathChildrenCache(這裡把初始化的用戶端傳進來, 這裡傳入監聽的地址, true, false, tp);
try {
cache.start(PathChildrenCache.StartMode.NORMAL);
} catch (Exception e) {
e.printStackTrace();
}
cache.getListenable().addListener(new PathChildrenCacheListener() {
public void childEvent(CuratorFramework client,
PathChildrenCacheEvent event) throws Exception {
switch (event.getType()) {
case CHILD_ADDED://這裡三個switch分別對應三個操作,裡面寫實現的商務邏輯
listenService.initUser(new String(event.getData()));event.getData()是擷取資料
break;
case CHILD_UPDATED:
break;
case CHILD_REMOVED:
break;
default:
break;
}
}
});
}
```

3. 建立
```
String path = "自訂";
try {
client.getClient().create()
.withMode(CreateMode.PERSISTENT_SEQUENTIAL)//這個是順序持久節點(自動按照順序給節點前加數字),SEQUENTIAL是單純的持久節點
.forPath(這裡傳地址, "這裡傳資料");
} catch (Exception e) {
e.printStackTrace();
}
```

Zookeeper Client基礎操作和Java調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.