public class CloudStoreSeedNodeProvider extends Object implements io.hekate.cluster.seed.SeedNodeProvider
SeedNodeProvider interface.
This provider uses a cloud storage (f.e. Amazon S3) to keep track of active seed nodes. When provider starts discovering other nodes it
uses BlobStore to creates a new empty blob whose name contains local node's host address and port. Such blob is stored in a
configurable container (aka bucket) under
/[cluster_name]/ folder. In order to find other seed nodes it reads the list of all blobs
in that folder and parses addresses from their names.
Please see the documentation of CloudStoreSeedNodeProviderConfig class for details about the available configuration options.
ClusterServiceFactory.setSeedNodeProvider(SeedNodeProvider),
SeedNodeProvider| Constructor and Description |
|---|
CloudStoreSeedNodeProvider(CloudStoreSeedNodeProviderConfig cfg)
Constructs new instance.
|
| Modifier and Type | Method and Description |
|---|---|
long |
cleanupInterval() |
List<InetSocketAddress> |
findSeedNodes(String cluster) |
void |
registerRemote(String cluster,
InetSocketAddress node) |
void |
startDiscovery(String cluster,
InetSocketAddress node) |
void |
stopDiscovery(String cluster,
InetSocketAddress node) |
void |
suspendDiscovery() |
String |
toString() |
void |
unregisterRemote(String cluster,
InetSocketAddress node) |
public CloudStoreSeedNodeProvider(CloudStoreSeedNodeProviderConfig cfg)
cfg - Configuration.public void startDiscovery(String cluster, InetSocketAddress node) throws io.hekate.core.HekateException
startDiscovery in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void stopDiscovery(String cluster, InetSocketAddress node) throws io.hekate.core.HekateException
stopDiscovery in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic List<InetSocketAddress> findSeedNodes(String cluster) throws io.hekate.core.HekateException
findSeedNodes in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void registerRemote(String cluster, InetSocketAddress node) throws io.hekate.core.HekateException
registerRemote in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void unregisterRemote(String cluster, InetSocketAddress node) throws io.hekate.core.HekateException
unregisterRemote in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void suspendDiscovery()
throws io.hekate.core.HekateException
suspendDiscovery in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic long cleanupInterval()
cleanupInterval in interface io.hekate.cluster.seed.SeedNodeProvider