聊聊、Zookeeper 客户端 Curator
生活随笔
收集整理的這篇文章主要介紹了
聊聊、Zookeeper 客户端 Curator
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【Curator】?
?和 ZkClient 一樣,Curator 也是開源客戶端,Curator 是 Netflix 公司開源的一套框架。?
<dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.8.0</version> </dependency>?
?創建連接
- ?static CuratorFramework newClient(String connectString,RetryPolicy retryPolicy)
- ?static CuratorFramework newClient(String connectString,int sessionTimeOutMs,int connectionTimeOutMs,RetryPolicy retryPolicy)
?和原生 API,ZkClient 客戶端都不一樣,Curator 通過 CuratorFrameworkFactory 來創建客戶端,然后調用 start 方法來啟動。
?
package zookeeper.curator;import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry;public class OpenCuratorClient {public static void main(String[] args) {RetryPolicy policy = new ExponentialBackoffRetry(1000, 3);CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181",5000,3000,policy);client.start();}}?
?ExponentialBackoffRetry 是?SleepingRetry 實現類,而 SleepingRetry 又是?RetryPolicy 接口實現類。ExponentialBackoffRetry(1000, 3) 表示初始 sleep 時間 1 秒,重試次數為 3。
?
?創建節點
- ?public CreateBuilder create()
- ?public ProtectACLCreateModePathAndBytesable<String> creatingParentsIfNeeded()
- ?public T withMode(CreateMode mode)
- ?public T forPath(String path,byte[] data) throws Exception
- ?public T forPath(String path)?throws Exception
?
package zookeeper.curator;import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.zookeeper.CreateMode;public class OpenCuratorClient {public static void main(String[] args) {RetryPolicy policy = new ExponentialBackoffRetry(1000, 3);CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181",5000,3000,policy);client.start();try {client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/app2","app2".getBytes());} catch (Exception e1) {e1.printStackTrace();}try {Thread.sleep(Integer.MAX_VALUE);} catch (InterruptedException e) {e.printStackTrace();}}}
?
?謝謝大家觀看!
?
轉載于:https://www.cnblogs.com/xums/p/7220493.html
總結
以上是生活随笔為你收集整理的聊聊、Zookeeper 客户端 Curator的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring装配Bean过程
- 下一篇: sql-表空间