Class CouchbaseAsyncCluster

  • All Implemented Interfaces:
    AsyncCluster

    public class CouchbaseAsyncCluster
    extends Object
    implements AsyncCluster
    Main asynchronous entry point to a Couchbase Cluster. The CouchbaseAsyncCluster object is the main entry point when connecting to a remote Couchbase Server cluster. It will either create a bundled stateful environment or accept one passed in, in case the application needs to connect to more clusters at the same time. It provides cluster level management facilities through the AsyncClusterManager class, but mainly provides facilities to open AsyncBuckets where the actual CRUD and query operations are performed against. The simplest way to initialize a CouchbaseAsyncCluster is by using the create() factory method. This is only recommended during development, since it will connect to a Cluster residing on `127.0.0.1`. ```java AsyncCluster cluster = CouchbaseAsyncCluster.create(); ``` In production, it is recommended that at least two or three hosts are passed in, so in case one fails the SDK is able to bootstrap through alternative options. ```java AsyncCluster cluster = CouchbaseAsyncCluster.create( "192.168.56.101", "192.168.56.102", "192.168.56.103" ); ``` Please make sure that these hosts are part of the same cluster, otherwise non-deterministic connecting behaviour will arise (the SDK may connect to the wrong cluster). If you need to customize CouchbaseEnvironment options or connect to multiple clusters, it is recommended to explicitly create one and then reuse it. Keep in mind that the cluster will not shut down the environment if it didn't create it, so this is up to the caller. ```java CouchbaseEnvironment environment = DefaultCouchbaseEnvironment.builder() .kvTimeout(3000) // change the default kv timeout .build(); AsyncCluster cluster = CouchbaseAsyncCluster.create(environment, "192.168.56.101", "192.168.56.102"); Observable<Bucket> bucket = cluster.openBucket("travel-sample"); // Perform your work here... cluster.disconnect(); environment.shutdownAsync().toBlocking().single(); ```
    Since:
    2.0.0
    Author:
    Michael Nitschinger, Simon Baslé
    • Method Detail

      • openBucket

        public rx.Observable<AsyncBucket> openBucket()
        Description copied from interface: AsyncCluster
        Opens the default bucket with an empty password. The Observable can error under the following conditions: - com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack trace for more details why it failed). - com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.
        Specified by:
        openBucket in interface AsyncCluster
        Returns:
        the opened bucket if successful.
      • openBucket

        public rx.Observable<AsyncBucket> openBucket​(String name)
        Description copied from interface: AsyncCluster
        Opens the bucket with the given name using the password from the Authenticator that was last set If no credential context can be found for the bucket when using ClassicAuthenticator , the old behavior of defaulting to an empty password is used. The Observable can error under the following conditions: - com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack trace for more details why it failed). - com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed. - AuthenticatorException: If more than one credentials was returned by the Authenticator for this bucket.
        Specified by:
        openBucket in interface AsyncCluster
        Parameters:
        name - the name of the bucket.
        Returns:
        the opened bucket if successful.
      • openBucket

        public rx.Observable<AsyncBucket> openBucket​(String name,
                                                     List<Transcoder<? extends Document,​?>> transcoders)
        Description copied from interface: AsyncCluster
        Opens the bucket with the given name using the password from the Authenticator that was last set If no credential context can be found for the bucket when using ClassicAuthenticator , the old behavior of defaulting to an empty password is used. The Observable can error under the following conditions: - com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack trace for more details why it failed). - com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed. - AuthenticatorException: If more than one credentials was returned by the Authenticator for this bucket.
        Specified by:
        openBucket in interface AsyncCluster
        Parameters:
        name - the name of the bucket.
        Returns:
        the opened bucket if successful.
      • openBucket

        public rx.Observable<AsyncBucket> openBucket​(String name,
                                                     String password)
        Description copied from interface: AsyncCluster
        Opens the bucket with the given name and password. The Observable can error under the following conditions: - com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack trace for more details why it failed). - com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.
        Specified by:
        openBucket in interface AsyncCluster
        Parameters:
        name - the name of the bucket.
        Returns:
        the opened bucket if successful.
      • openBucket

        public rx.Observable<AsyncBucket> openBucket​(String name,
                                                     String password,
                                                     List<Transcoder<? extends Document,​?>> transcoders)
        Description copied from interface: AsyncCluster
        Opens the bucket with the given name, password and a custom list of Transcoders. The Observable can error under the following conditions: - com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack trace for more details why it failed). - com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.
        Specified by:
        openBucket in interface AsyncCluster
        Parameters:
        name - the name of the bucket.
        Returns:
        the opened bucket if successful.
      • disconnect

        public rx.Observable<Boolean> disconnect()
        Description copied from interface: AsyncCluster
        Disconnects form all open buckets and shuts down the CouchbaseEnvironment if it is the exclusive owner.
        Specified by:
        disconnect in interface AsyncCluster
        Returns:
        true once done and everything succeeded, false otherwise.
      • clusterManager

        public rx.Observable<AsyncClusterManager> clusterManager​(String username,
                                                                 String password)
        Description copied from interface: AsyncCluster
        Provides access to the AsyncClusterManager to perform cluster-wide operations. Note that the credentials provided here are different from bucket-level credentials. As a rule of thumb, the "Administrator" credentials need to be passed in here or any credentials with enough permissions to perform the underlying operations. **Bucket level credentials will not work.**
        Specified by:
        clusterManager in interface AsyncCluster
        Parameters:
        username - the username to perform cluster-wide operations.
        password - the password associated with the username.
        Returns:
        the AsyncClusterManager if successful.
      • core

        public rx.Observable<ClusterFacade> core()
        Description copied from interface: AsyncCluster
        Returns the underlying "core-io" library through its ClusterFacade. Handle with care, with great power comes great responsibility. All additional checks which are normally performed by this library are skipped.
        Specified by:
        core in interface AsyncCluster
        Returns:
        the underlying ClusterFacade from the "core-io" package.
      • authenticate

        public CouchbaseAsyncCluster authenticate​(Authenticator auth)
        Description copied from interface: AsyncCluster
        Sets the Authenticator to use when credentials are needed for an operation but no explicit credentials are provided. Note that setting a new Authenticator will not be propagated to any Bucket that has been opened with the previous Authenticator, as the instance is passed to the Bucket for its own use.
        Specified by:
        authenticate in interface AsyncCluster
        Parameters:
        auth - the new Authenticator to use.
        Returns:
        this AsyncCluster instance for chaining.
      • authenticate

        public AsyncCluster authenticate​(String username,
                                         String password)
        Description copied from interface: AsyncCluster
        Shortcut method to directly authenticate with a username and a password.
        Specified by:
        authenticate in interface AsyncCluster
        Parameters:
        username - the username to authenticate
        password - the password for the username
        Returns:
        this Cluster instance for chaining.
      • authenticator

        @Uncommitted
        @Private
        public Authenticator authenticator()
        Get the Authenticator currently used when credentials are needed for an operation, but no explicit credentials are provided.
        Returns:
        the Authenticator currently used for this cluster.