zoukankan      html  css  js  c++  java
  • 连接zookeeper集群

    连接到ZooKeeper集合

    ZooKeeper类通过其构造函数提供connect功能。构造函数的签名如下 :

    ZooKeeper(String connectionString, int sessionTimeout, Watcher watcher)
    • connectionString - ZooKeeper集合主机。

    • sessionTimeout - 会话超时(以毫秒为单位)。

    • watcher - 实现“监视器”界面的对象。ZooKeeper集合通过监视器对象返回连接状态。

    让我们创建一个新的帮助类 ZooKeeperConnection ,并添加一个方法 connect 。 connect 方法创建一个ZooKeeper对象,连接到ZooKeeper集合,然后返回对象。

    这里 CountDownLatch 用于停止(等待)主进程,直到客户端与ZooKeeper集合连接。

    ZooKeeper集合通过监视器回调来回复连接状态。一旦客户端与ZooKeeper集合连接,监视器回调就会被调用,并且监视器回调函数调用CountDownLatchcountDown方法来释放锁,在主进程中await

    以下是与ZooKeeper集合连接的完整代码。

    编码:ZooKeeperConnection.java

    // import java classes
    import java.io.IOException;
    import java.util.concurrent.CountDownLatch;
    
    // import zookeeper classes
    import org.apache.zookeeper.KeeperException;
    import org.apache.zookeeper.WatchedEvent;
    import org.apache.zookeeper.Watcher;
    import org.apache.zookeeper.Watcher.Event.KeeperState;
    import org.apache.zookeeper.ZooKeeper;
    import org.apache.zookeeper.AsyncCallback.StatCallback;
    import org.apache.zookeeper.KeeperException.Code;
    import org.apache.zookeeper.data.Stat;
    
    public class ZooKeeperConnection {
    
       // declare zookeeper instance to access ZooKeeper ensemble
       private ZooKeeper zoo;
       final CountDownLatch connectedSignal = new CountDownLatch(1);
    
       // Method to connect zookeeper ensemble.
       public ZooKeeper connect(String host) throws IOException,InterruptedException {
    	
          zoo = new ZooKeeper(host,5000,new Watcher() {
    		
             public void process(WatchedEvent we) {
    
                if (we.getState() == KeeperState.SyncConnected) {
                   connectedSignal.countDown();
                }
             }
          });
    		
          connectedSignal.await();
          return zoo;
       }
    
       // Method to disconnect from zookeeper server
       public void close() throws InterruptedException {
          zoo.close();
       }
    }
    

    保存上面的代码,它将在下一节中用于连接ZooKeeper集合。

  • 相关阅读:
    Chapter 1 Secondary Sorting:Introduction
    Apache Spark : RDD
    Apache Spark : Introduction
    Python 变量和数据类型
    CMP3$
    idea实现eclipse工作空间的思路
    Oracle 数据字典查询
    sql左连接、右连接、内连接、不写连接符号
    ADB
    Serverless
  • 原文地址:https://www.cnblogs.com/panxuejun/p/8573507.html
Copyright © 2011-2022 走看看