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客戶端Java客戶端
- zookeeper的Java客戶端APIJava客戶端API
- 【zookeeper之七】Zookeeper客戶端客戶端
- Zookeeper 客戶端 API客戶端API
- ZooKeeper客戶端CRUD命令客戶端
- zookeeper Java客戶端API的使用方法Java客戶端API
- 【Zookeeper】zookeeper客戶端KeeperErrorCode = ConnectionLoss客戶端Error
- Zookeeper C客戶端庫編譯客戶端編譯
- zookeeper 開源客戶端ZkClient使用客戶端client
- zookeeper 開源客戶端Curator使用客戶端
- Zookeeper--客戶端基礎命令客戶端
- ZooKeeper服務發現客戶端客戶端
- 聊一聊 Zookeeper 客戶端之 Curator客戶端
- Zookeeper客戶端使用與叢集原理客戶端
- java websocket 客戶端JavaWeb客戶端
- zookeeper在Linux客戶端操作命令大全Linux客戶端
- ZooKeeper客戶端事件序列化處理客戶端事件
- 《samba搭建win客戶端和linux客戶端的區別》Samba客戶端Linux
- Zookeeper之Zookeeper底層客戶端架構實現原理(轉載)客戶端架構
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- ZooKeeper服務發現客戶端--重連認證客戶端
- JAVA FTP客戶端問題JavaFTP客戶端
- Java OAuth 2.0 客戶端程式設計(二): 客戶端憑據授權JavaOAuth客戶端程式設計
- MQTT伺服器搭建服務端和客戶端MQQT伺服器服務端客戶端
- [jaeger] 二、客戶端使用 (Java版本)客戶端Java
- Elasticsearch及java客戶端jest使用ElasticsearchJava客戶端
- 使用Apollo Server搭建GraphQL的服務端和客戶端Server服務端客戶端
- Tars-Java客戶端原始碼分析Java客戶端原始碼
- java 獲取客戶端真實ipJava客戶端
- java獲取客戶端ip和macJava客戶端Mac
- Redis介紹 && Java客戶端操作RedisRedisJava客戶端
- 如何建立一個Java遊戲客戶端Java遊戲客戶端
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- Rest Post示例(java服務端、python客戶端)RESTJava服務端Python客戶端
- 客戶端,服務端客戶端服務端
- 服務端,客戶端服務端客戶端