Class ClusterManagerBucketLoader

java.lang.Object
com.couchbase.client.core.config.loader.BaseBucketLoader
com.couchbase.client.core.config.loader.ClusterManagerBucketLoader
All Implemented Interfaces:
BucketLoader

public class ClusterManagerBucketLoader extends BaseBucketLoader
This loader is responsible for loading a config from the cluster manager.

While one might think always going to the cluster manager is the best option, there is a reason why this loader is only a fallback to the KeyValueBucketLoader. At scale, talking to KV engine for a config is much more efficient than talking to the cluster manager. But there are times where the carrier loader cannot do its job and then this fallback is a safe alternative.

Side note for folks coming from the 1.x core: since we've stopped supporting anything older than 5.0.0 on the server, there is no need for the verbose fallback anymore, since every supported version supports the terse http config path.

In 1.x this used to be called the "HttpLoader", but the new name more accurately reflects where it is getting the config from rather than how.

Since:
1.0.0
  • Constructor Details

    • ClusterManagerBucketLoader

      public ClusterManagerBucketLoader(Core core)
  • Method Details

    • discoverConfig

      protected Mono<byte[]> discoverConfig(NodeIdentifier seed, String bucket)
      Description copied from class: BaseBucketLoader
      To be implemented by the actual child, performs the actual fetching of a config.
      Specified by:
      discoverConfig in class BaseBucketLoader
      Parameters:
      seed - the node from where to fetch it.
      bucket - the name of the bucket to fetch from.
      Returns:
      the encoded json version of the config if complete, an error otherwise.