Zookeeper Java 客戶端搭建
本教程使用的 IDE 為 IntelliJ IDEA,建立一個 maven 工程,命名為 zookeeper-demo,並且引入如下依賴,可以自行在maven中央倉庫選擇合適的版本,介紹原生 API 和 Curator 兩種方式。
IntelliJ IDEA 相關介紹:
junit junit 4.11 test org.apache.zookeeper zookeeper 3.4.8 org.apache.curator curator-framework 4.0.0 org.apache.curator curator-recipes 4.0.0
maven 工程目錄結構:
一、客戶端的 zookeeper 原生 API
使用 zookeeper 原生 API,連線上一教程搭建的三臺服務組成的叢集,因為連線需要時間,用 countDownLatch 阻塞,等待連線成功,控制檯輸出連線狀態!
例項
...public static void main(String[] args) { try { final CountDownLatch countDownLatch=new CountDownLatch(1); ZooKeeper zooKeeper= new ZooKeeper("192.168.3.33:2181," + "192.168.3.35:2181,192.168.3.37:2181", 4000, new Watcher() { @Override public void process(WatchedEvent event) { if(Event.KeeperState.SyncConnected==event.getState()){ //如果收到了服務端的響應事件,連線成功 countDownLatch.countDown(); } } }); countDownLatch.await(); //CONNECTED System.out.println(zooKeeper.getState()); }}...
控制檯輸出 connected 顯示連線成功!
簡單示例新增節點 API:
zooKeeper.create("/runoob","0".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
提示:更多命令功能使用請參考本教程後面章節。
同時在服務端終端執行命令,顯示設定成功。
二、客戶端的curator連線
Curator 是 Netflix 公司開源的一套 zookeeper 客戶端框架,解決了很多 Zookeeper 客戶端非常底層的細節開發工作,包括連線重連、反覆註冊 Watcher 和 NodeExistsException 異常等。
Curator 包含了幾個包:
curator-framework:對 zookeeper 的底層 api 的一些封裝。
curator-client:提供一些客戶端的操作,例如重試策略等。
curator-recipes:封裝了一些高階特性,如:Cache 事件監聽、選舉、分散式鎖、分散式計數器、分散式 Barrier 等。
簡單使用示例:
例項
上一步設定了 /runoob 節點值,所以控制檯輸出。
curator 相關參考連結: http://curator.apache.org/。
作者公眾號:一起寫程式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2797703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- zookeeper的Java客戶端APIJava客戶端API
- 【zookeeper之七】Zookeeper客戶端客戶端
- 【Zookeeper】zookeeper客戶端KeeperErrorCode = ConnectionLoss客戶端Error
- Zookeeper 客戶端 API客戶端API
- ZooKeeper客戶端CRUD命令客戶端
- Zookeeper C客戶端庫編譯客戶端編譯
- 聊一聊 Zookeeper 客戶端之 Curator客戶端
- zookeeper在Linux客戶端操作命令大全Linux客戶端
- Zookeeper客戶端使用與叢集原理客戶端
- java websocket 客戶端JavaWeb客戶端
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- [jaeger] 二、客戶端使用 (Java版本)客戶端Java
- MQTT伺服器搭建服務端和客戶端MQQT伺服器服務端客戶端
- netty系列之:使用netty搭建websocket客戶端NettyWeb客戶端
- 使用Apollo Server搭建GraphQL的服務端和客戶端Server服務端客戶端
- Java HTTP 客戶端的比較 - reflectoringJavaHTTP客戶端
- Tars-Java客戶端原始碼分析Java客戶端原始碼
- 搭建eureka叢集環境以及客戶端配置客戶端
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- Java 客戶端 Jedis和JedisPool 連線池Java客戶端
- Jenkins 常用 REST API介紹(Java 客戶端)JenkinsRESTAPIJava客戶端
- [轉載] 使用Redis的Java客戶端JedisRedisJava客戶端
- 如何建立一個Java遊戲客戶端Java遊戲客戶端
- Java中OpenAI API客戶端原始碼教程JavaOpenAIAPI客戶端原始碼
- Jaeger的客戶端取樣配置(Java版)客戶端Java
- java客戶端查詢ES操作步驟Java客戶端
- Kubernetes官方java客戶端之八:fluent styleJava客戶端
- Kubernetes官方java客戶端之一:準備Java客戶端
- Kubernetes官方java客戶端之七:patch操作Java客戶端
- 服務端,客戶端服務端客戶端
- 客戶端,服務端客戶端服務端
- Nacos - 客戶端心跳續約及客戶端總結客戶端
- YUM源伺服器搭建與客戶端配置使用伺服器客戶端
- CAS SSO單點登入客戶端環境搭建客戶端
- Netty入門系列(1) --使用Netty搭建服務端和客戶端Netty服務端客戶端
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端