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 AsyncBucket
s 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
.
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.
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.
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();
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_BUCKET
The default bucket used when
openBucket() is called. |
static String |
DEFAULT_HOST
The default hostname used to bootstrap then
create() is used. |
Modifier and Type | Method and Description |
---|---|
Observable<AsyncClusterManager> |
clusterManager(String username,
String password)
Provides access to the
AsyncClusterManager to perform cluster-wide operations. |
Observable<ClusterFacade> |
core()
Returns the underlying “core-io” library through its
ClusterFacade . |
static CouchbaseAsyncCluster |
create()
Creates a new
CouchbaseAsyncCluster reference against the DEFAULT_HOST . |
static CouchbaseAsyncCluster |
create(CouchbaseEnvironment environment)
Creates a new
CouchbaseAsyncCluster reference against the DEFAULT_HOST . |
static CouchbaseAsyncCluster |
create(CouchbaseEnvironment environment,
List<String> nodes)
Creates a new
CouchbaseAsyncCluster reference against the nodes passed in. |
static CouchbaseAsyncCluster |
create(CouchbaseEnvironment environment,
String... nodes)
Creates a new
CouchbaseAsyncCluster reference against the nodes passed in. |
static CouchbaseAsyncCluster |
create(List<String> nodes)
Creates a new
CouchbaseAsyncCluster reference against the nodes passed in. |
static CouchbaseAsyncCluster |
create(String... nodes)
Creates a new
CouchbaseAsyncCluster reference against the nodes passed in. |
Observable<Boolean> |
disconnect()
Disconnects form all open buckets and shuts down the
CouchbaseEnvironment if it is the exclusive owner. |
static CouchbaseAsyncCluster |
fromConnectionString(CouchbaseEnvironment environment,
String connectionString)
Creates a new
CouchbaseAsyncCluster reference using the connection string. |
static CouchbaseAsyncCluster |
fromConnectionString(String connectionString)
Creates a new
CouchbaseAsyncCluster reference using the connection string. |
Observable<AsyncBucket> |
openBucket()
Opens the default bucket with an empty password.
|
Observable<AsyncBucket> |
openBucket(String name)
Opens the bucket with the given name and an empty password.
|
Observable<AsyncBucket> |
openBucket(String name,
String password)
Opens the bucket with the given name and password.
|
Observable<AsyncBucket> |
openBucket(String name,
String password,
List<Transcoder<? extends Document,?>> transcoders)
Opens the bucket with the given name, password and a custom list of
Transcoder s. |
public static final String DEFAULT_BUCKET
The default bucket used when openBucket()
is called.
Defaults to “default”.
public static final String DEFAULT_HOST
The default hostname used to bootstrap then create()
is used.
Defaults to “127.0.0.1”.
public static CouchbaseAsyncCluster create()
Creates a new CouchbaseAsyncCluster
reference against the DEFAULT_HOST
.
Note: It is recommended to use this method only during development, since it does not allow you to pass in hostnames when connecting to a remote cluster. Please use create(String...)
or similar instead.
The CouchbaseEnvironment
will be automatically created and its lifecycle managed.
CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster create(CouchbaseEnvironment environment)
Creates a new CouchbaseAsyncCluster
reference against the DEFAULT_HOST
.
Note: It is recommended to use this method only during development, since it does not allow you to pass in hostnames when connecting to a remote cluster. Please use create(String...)
or similar instead.
environment
- the custom environment to use for this cluster reference.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster create(String... nodes)
Creates a new CouchbaseAsyncCluster
reference against the nodes passed in.
The CouchbaseEnvironment
will be automatically created and its lifecycle managed.
nodes
- the list of nodes to use when connecting to the cluster reference.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster create(List<String> nodes)
Creates a new CouchbaseAsyncCluster
reference against the nodes passed in.
The CouchbaseEnvironment
will be automatically created and its lifecycle managed.
nodes
- the list of nodes to use when connecting to the cluster reference.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster create(CouchbaseEnvironment environment, String... nodes)
Creates a new CouchbaseAsyncCluster
reference against the nodes passed in.
environment
- the custom environment to use for this cluster reference.nodes
- the list of nodes to use when connecting to the cluster reference.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster create(CouchbaseEnvironment environment, List<String> nodes)
Creates a new CouchbaseAsyncCluster
reference against the nodes passed in.
environment
- the custom environment to use for this cluster reference.nodes
- the list of nodes to use when connecting to the cluster reference.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster fromConnectionString(String connectionString)
Creates a new CouchbaseAsyncCluster
reference using the connection string.
The CouchbaseEnvironment
will be automatically created and its lifecycle managed.
connectionString
- the connection string to identify the remote cluster.CouchbaseAsyncCluster
reference.public static CouchbaseAsyncCluster fromConnectionString(CouchbaseEnvironment environment, String connectionString)
Creates a new CouchbaseAsyncCluster
reference using the connection string.
environment
- the custom environment to use for this cluster reference.connectionString
- the connection string to identify the remote cluster.CouchbaseAsyncCluster
reference.public Observable<AsyncBucket> openBucket()
AsyncCluster
Opens the default bucket with an empty password.
The Observable
can error under the following conditions:
openBucket
in interface AsyncCluster
public Observable<AsyncBucket> openBucket(String name)
AsyncCluster
Opens the bucket with the given name and an empty password.
The Observable
can error under the following conditions:
openBucket
in interface AsyncCluster
name
- the name of the bucket.public Observable<AsyncBucket> openBucket(String name, String password)
AsyncCluster
Opens the bucket with the given name and password.
The Observable
can error under the following conditions:
openBucket
in interface AsyncCluster
name
- the name of the bucket.public Observable<AsyncBucket> openBucket(String name, String password, List<Transcoder<? extends Document,?>> transcoders)
AsyncCluster
Opens the bucket with the given name, password and a custom list of Transcoder
s.
The Observable
can error under the following conditions:
openBucket
in interface AsyncCluster
name
- the name of the bucket.public Observable<Boolean> disconnect()
AsyncCluster
Disconnects form all open buckets and shuts down the CouchbaseEnvironment
if it is the exclusive owner.
disconnect
in interface AsyncCluster
public Observable<AsyncClusterManager> clusterManager(String username, String password)
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.
clusterManager
in interface AsyncCluster
username
- the username to perform cluster-wide operations.password
- the password associated with the username.AsyncClusterManager
if successful.public Observable<ClusterFacade> core()
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.
core
in interface AsyncCluster
ClusterFacade
from the “core-io” package.Copyright © 2015 Couchbase, Inc.