public class CloudStoreSeedNodeProvider extends Object implements io.hekate.cluster.seed.SeedNodeProvider, io.hekate.core.report.ConfigReportSupport
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 /[namepsace]/ 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() |
String |
container()
Cloud store container.
|
List<InetSocketAddress> |
findSeedNodes(String namespace) |
Properties |
properties()
Cloud store provider properties.
|
String |
provider()
Cloud store provider.
|
void |
registerRemote(String namespace,
InetSocketAddress node) |
void |
report(io.hekate.core.report.ConfigReporter report) |
void |
startDiscovery(String namespace,
InetSocketAddress node) |
void |
stopDiscovery(String namespace,
InetSocketAddress node) |
void |
suspendDiscovery() |
String |
toString() |
void |
unregisterRemote(String namespace,
InetSocketAddress node) |
public CloudStoreSeedNodeProvider(CloudStoreSeedNodeProviderConfig cfg)
cfg - Configuration.public void report(io.hekate.core.report.ConfigReporter report)
report in interface io.hekate.core.report.ConfigReportSupportpublic String provider()
CloudStoreSeedNodeProviderConfig.setProvider(String)public String container()
CloudStoreSeedNodeProviderConfig.setContainer(String)public Properties properties()
CloudStoreSeedNodeProviderConfig.setProperties(Properties)public void startDiscovery(String namespace, InetSocketAddress node) throws io.hekate.core.HekateException
startDiscovery in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void stopDiscovery(String namespace, InetSocketAddress node) throws io.hekate.core.HekateException
stopDiscovery in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic List<InetSocketAddress> findSeedNodes(String namespace) throws io.hekate.core.HekateException
findSeedNodes in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void registerRemote(String namespace, InetSocketAddress node) throws io.hekate.core.HekateException
registerRemote in interface io.hekate.cluster.seed.SeedNodeProviderio.hekate.core.HekateExceptionpublic void unregisterRemote(String namespace, 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