コード例 #1
0
  /**
   * To create a ZooKeeper client object, the application needs to pass a connection string
   * containing a comma separated list of host:port pairs, each corresponding to a ZooKeeper server.
   *
   * <p>Session establishment is asynchronous. This constructor will initiate connection to the
   * server and return immediately - potentially (usually) before the session is fully established.
   * The watcher argument specifies the watcher that will be notified of any changes in state. This
   * notification can come at any point before or after the constructor call has returned.
   *
   * <p>The instantiated ZooKeeper client object will pick an arbitrary server from the
   * connectString and attempt to connect to it. If establishment of the connection fails, another
   * server in the connect string will be tried (the order is non-deterministic, as we random
   * shuffle the list), until a connection is established. The client will continue attempts until
   * the session is explicitly closed.
   *
   * <p>Added in 3.2.0: An optional "chroot" suffix may also be appended to the connection string.
   * This will run the client commands while interpreting all paths relative to this root (similar
   * to the unix chroot command).
   *
   * @param connectString comma separated host:port pairs, each corresponding to a zk server. e.g.
   *     "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the
   *     example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the
   *     client would be rooted at "/app/a" and all paths would be relative to this root - ie
   *     getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar"
   *     (from the server perspective).
   * @param sessionTimeout session timeout in milliseconds
   * @param watcher a watcher object which will be notified of state changes, may also be notified
   *     for node events
   * @throws IOException in cases of network failure
   * @throws IllegalArgumentException if an invalid chroot path is specified
   */
  public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) throws IOException {
    LOG.info(
        "Initiating client connection, connectString="
            + connectString
            + " sessionTimeout="
            + sessionTimeout
            + " watcher="
            + watcher);

    watchManager.defaultWatcher = watcher;
    cnxn = new ClientCnxn(connectString, sessionTimeout, this, watchManager);
    cnxn.start();
  }
コード例 #2
0
  /**
   * To create a ZooKeeper client object, the application needs to pass a connection string
   * containing a comma separated list of host:port pairs, each corresponding to a ZooKeeper server.
   *
   * <p>Session establishment is asynchronous. This constructor will initiate connection to the
   * server and return immediately - potentially (usually) before the session is fully established.
   * The watcher argument specifies the watcher that will be notified of any changes in state. This
   * notification can come at any point before or after the constructor call has returned.
   *
   * <p>The instantiated ZooKeeper client object will pick an arbitrary server from the
   * connectString and attempt to connect to it. If establishment of the connection fails, another
   * server in the connect string will be tried (the order is non-deterministic, as we random
   * shuffle the list), until a connection is established. The client will continue attempts until
   * the session is explicitly closed (or the session is expired by the server).
   *
   * <p>Added in 3.2.0: An optional "chroot" suffix may also be appended to the connection string.
   * This will run the client commands while interpreting all paths relative to this root (similar
   * to the unix chroot command).
   *
   * <p>Use {@link #getSessionId} and {@link #getSessionPasswd} on an established client connection,
   * these values must be passed as sessionId and sessionPasswd respectively if reconnecting.
   * Otherwise, if not reconnecting, use the other constructor which does not require these
   * parameters.
   *
   * @param connectString comma separated host:port pairs, each corresponding to a zk server. e.g.
   *     "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" If the optional chroot suffix is used the
   *     example would look like: "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a" where the
   *     client would be rooted at "/app/a" and all paths would be relative to this root - ie
   *     getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar"
   *     (from the server perspective).
   * @param sessionTimeout session timeout in milliseconds
   * @param watcher a watcher object which will be notified of state changes, may also be notified
   *     for node events
   * @param sessionId specific session id to use if reconnecting
   * @param sessionPasswd password for this session
   * @throws IOException in cases of network failure
   * @throws IllegalArgumentException if an invalid chroot path is specified
   */
  public ZooKeeper(
      String connectString,
      int sessionTimeout,
      Watcher watcher,
      long sessionId,
      byte[] sessionPasswd)
      throws IOException {
    LOG.info(
        "Initiating client connection, connectString="
            + connectString
            + " sessionTimeout="
            + sessionTimeout
            + " watcher="
            + watcher
            + " sessionId="
            + sessionId
            + " sessionPasswd="
            + (sessionPasswd == null ? "<null>" : "<hidden>"));

    watchManager.defaultWatcher = watcher;
    cnxn =
        new ClientCnxn(connectString, sessionTimeout, this, watchManager, sessionId, sessionPasswd);
    cnxn.start();
  }
コード例 #3
0
 /**
  * Specify the default watcher for the connection (overrides the one specified during
  * construction).
  *
  * @param watcher
  */
 public synchronized void register(Watcher watcher) {
   watchManager.defaultWatcher = watcher;
 }