1. 程式人生 > >Zookeeper實戰之使用Zookeeper API

Zookeeper實戰之使用Zookeeper API

前幾篇文章介紹了Zookeeper的安裝,今天來看看怎樣通過Zookeeper的API來操作Zookeeper。

要使用Zookeeper的API,首先需要建立一個ZooKeeper物件來連線ZooKeeper的server。
然後可以通過下面的方法來操作znode節點
create: 建立znode節點。
delete: 刪除znode節點,這裡需要注意就是如果要刪除的znode節點有子節點,需要先刪除所有子節點。
setData: 修改或設定znode節點的值。
getData: 獲取znode節點的值。
exists: 判斷一個znode節點是不是存在,返回一個Stat物件。
getChildren: 獲取一個節點的子節點。

下面看看具體程式碼實現

package my.zookeeperstudy;
 
import org.apache.zookeeper.*;
 
import java.util.List;
 
public class Test {
    private static final String HOST = "<hostname>";
    private static final String PORT = "2181";
 
    public static void main(String[] args) throws Exception {
        ZooKeeper zk = new ZooKeeper(HOST + ":" + PORT, 10000,
                new Watcher() {
                    public void process(WatchedEvent event) {
                        System.out.println("event: " + event.getType());
                    }
                });
 
        System.out.println(zk.getState());
 
        zk.create("/myApps", "myAppsData".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.create("/myApps/App1", "App1Data".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.create("/myApps/App2", "App2Data".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.create("/myApps/App3", "".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zk.setData("/myApps/App3","App3Data".getBytes(), -1);
 
        System.out.println(zk.exists("/myApps", true));
        System.out.println(new String(zk.getData("/myApps", true, null)));
 
        List<String> children = zk.getChildren("/myApps", true);
        for (String child : children) {
            System.out.println(new String(zk.getData("/myApps/" + child, true, null)));
            zk.delete("/myApps/" + child,-1);
        }
 
        zk.delete("/myApps",-1);
 
        zk.close();
    }
}


相關推薦

Zookeeper實戰使用Zookeeper API

前幾篇文章介紹了Zookeeper的安裝,今天來看看怎樣通過Zookeeper的API來操作Zookeeper。要使用Zookeeper的API,首先需要建立一個ZooKeeper物件來連線ZooKeeper的server。然後可以通過下面的方法來操作znode節點creat

Zookeeper】程式設計實戰Zookeeper分散式鎖實現秒殺

1. Zookeeper簡述    我們要了解一樣技術,首先應該要到它的官網,因為官網的資訊一般都是最準確的,如下圖是Zookeeper官網對它的介紹。    從官網的介紹中,可以總結出,Zookeeper是一個集中式服務,它能夠實現高度可靠的分散式協調,可用於開發和維護開源

Zookeeper實戰單機叢集模式

前一篇文章介紹了Zookeeper的單機模式的安裝及應用,但是Zookeeper是為了解決分散式應用場景的,所以通常都會執行在叢集模式下。今天由於手頭機器不足,所以今天打算在一臺機器上部署三個Zookeeper服務來組成一個Zookeeper叢集。這裡解壓Zookeeper的

Docker實戰Zookeeper叢集

1. 概述 這裡是 Docker 實戰系列第四篇。主要介紹分散式系統中的元老級元件 Zookeeper。 ZooKeeper 是一個開源的分散式協調服務,是 Hadoop,HBase 和其他分散式框架使用的有組織服務的標準。 分散式應用程式可以基於 ZooKeeper 實現諸如資料釋出/訂閱、負載均衡、命名服

大資料Zookeeper系列Zookeeper服務開機自啟動配置

1.  編寫執行指令碼 $ sudo cd /etc/init.d $ sudo vi zookeeper #!/bin/bash #chkconfig:2345 20 90 #description:zookeeper #processname:zookeeper

大資料Zookeeper系列Zookeeper分散式協調服務部署

一、部署準備 1. 安裝介質 zookeeper-3.4.13:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz 2. 主機規劃 192.168.233.13

ZooKeeper學習zookeeper的ACL(AUTH)

zookeeper的ACL(AUTH) ACL(Access Control List),Zookeeper作為一個分散式協調框架,其內部儲存的都是一些關於分散式 系統執行時狀態的元資料,尤其是設計到一些分散式鎖,Master選舉和協調等應用場景。我們需要有 效地保障Zookeeper中的資料安全,

THINKPHP5實戰Restful API(一) 如何建立RESTFUL API

說到Restful Api,我想大家肯定都不陌生,重要性可想而知,正好根據一個例子給大家來剖析一下Restful Api.php我選用的框架是THINKPHP5,當初這個框架釋出的時候就定義為為API而生,下面我們來看看怎麼用TP5來實現Restful Api吧.工具:THI

Zookeeper C++程式設計實戰主備切換

預設zookeeper日誌輸出到stderr, 可以呼叫zoo_set_log_stream(FILE*)設定輸出到檔案中 還可以呼叫zoo_set_debug_level(ZooLogLevel)控制日誌級別!!! 類CZookeeperHelper提供基於zookeeper的主備切換介面和讀

Zookeeper C++程式設計實戰配置更新

CZookeeperHelper:https://github.com/eyjian/libmooon/blob/master/include/mooon/net/zookeeper_helper.h CMainHelper:https://github.com/eyjian/libmooon/

大資料生態zookeeperAPI

在使用maven專案編寫zookeeper程式時匯入相關的jar包: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId&g

大數據生態zookeeperAPI

監聽 信息 zookeepe delete byte pat path upd try 在使用maven項目編寫zookeeper程序時導入相關的jar包: <dependency> <groupId>org.

Zookeeper常用API詳解

1、建立ZNode ①命令列方式 在根目錄下建立“FZnode"節點並存儲資料”First Znode": create /FZnode "First Znode" 在根目錄下建立

dubbo實戰三:使用Zookeeper註冊中心

### 歡迎訪問我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等; ### 《

ZookeeperZookeeper底層客戶端架構實現原理(轉載)

一次 描述 綁定 機制 一個 ini fin 源碼 receive Zookeeper的Client直接與用戶打交道,是我們使用Zookeeper的interface。了解ZK Client的結構和工作原理有利於我們合理的使用ZK,並能在使用中更早的發現問題。本文將在研究源

Kafka 學習筆記 ZooKeeper作用

9.png lec 管理 信息 發現 ges ima cti http Kafka使用ZooKeeper 配置管理 Leader Election 服務發現 首先進入ZooKeeper客戶端: ls / 可以看到有以下節點: 查看Topic 配置信息:體現了ZooK

[dubbo實戰] dubbo+zookeeper偽集群搭建

view 中修改 back int address 註冊中心 weight rep clipboard zookeeper作為註冊中心,服務器和客戶端都要訪問,如果有大量的並發,肯定會有等待。所以可以通過zookeeper集群解決。 一、為什麽需要zookeeper呢?

ZooKeeper 學習 安裝 部署

安裝 apach 編寫 端口 erro lang 問題 名稱 cal ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,ZooKeeper是以Fast Paxos算法為基礎,實現同步服務,配置維護和命名服務等分布式應用。 Zookeeper 分布式服務框

zookeeper總結客戶端執行核心模塊

except pre 執行 strong main amp per bst ply ZooKeeper   ZooKeeper是客戶端操作ZooKeeper服務端的核心類。當用戶向ZooKeeperMain執行相關命令時,最終會交給ZooKeeper執行,其會將用戶請求封裝

使用ZooKeeper提供的Java API操作ZooKeeper

zookeeper 服務協調框架 分布式 集群 Java API 建立客戶端與zk服務端的連接 我們先來創建一個普通的maven工程,然後在pom.xml文件中配置zookeeper依賴: <dependencies> <dependency>