Package io.atomix.cluster.discovery
Class BootstrapDiscoveryProvider
java.lang.Object
io.atomix.utils.event.AbstractListenerManager<NodeDiscoveryEvent,NodeDiscoveryEventListener>
io.atomix.cluster.discovery.BootstrapDiscoveryProvider
- All Implemented Interfaces:
NodeDiscoveryProvider,io.atomix.utils.config.Configured<NodeDiscoveryConfig>,io.atomix.utils.event.ListenerService<NodeDiscoveryEvent,NodeDiscoveryEventListener>
public class BootstrapDiscoveryProvider extends io.atomix.utils.event.AbstractListenerManager<NodeDiscoveryEvent,NodeDiscoveryEventListener> implements NodeDiscoveryProvider
Cluster membership provider that bootstraps membership from a pre-defined set of peers.
The bootstrap member provider takes a set of peer addresses and uses them
to join the cluster. Using the MessagingService, each node sends a heartbeat to
its configured bootstrap peers. Peers respond to each heartbeat message with a list of all known peers, thus
propagating membership information using a gossip style protocol.
A phi accrual failure detector is used to detect failures and remove peers from the configuration. In order to avoid
flapping of membership following a ClusterMembershipEvent.Type.MEMBER_ADDED event, the implementation attempts
to heartbeat all newly discovered peers before triggering a ClusterMembershipEvent.Type.MEMBER_REMOVED event.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBootstrapDiscoveryProvider.TypeBootstrap member location provider type. -
Field Summary
Fields Modifier and Type Field Description static BootstrapDiscoveryProvider.TypeTYPE -
Constructor Summary
Constructors Constructor Description BootstrapDiscoveryProvider(Node... bootstrapNodes)BootstrapDiscoveryProvider(Collection<Node> bootstrapNodes) -
Method Summary
Modifier and Type Method Description static BootstrapDiscoveryBuilderbuilder()Creates a new bootstrap provider builder.BootstrapDiscoveryConfigconfig()Set<Node>getNodes()Returns the set of active nodes.CompletableFuture<Void>join(BootstrapService bootstrap, Node localNode)Joins the cluster.CompletableFuture<Void>leave(Node localNode)Leaves the cluster.Methods inherited from class io.atomix.utils.event.AbstractListenerManager
addListener, removeListener
-
Field Details
-
Constructor Details
-
Method Details
-
builder
Creates a new bootstrap provider builder.- Returns:
- a new bootstrap provider builder
-
config
- Specified by:
configin interfaceio.atomix.utils.config.Configured<NodeDiscoveryConfig>
-
getNodes
Description copied from interface:NodeDiscoveryProviderReturns the set of active nodes.- Specified by:
getNodesin interfaceNodeDiscoveryProvider- Returns:
- the set of active nodes
-
join
Description copied from interface:NodeDiscoveryProviderJoins the cluster.- Specified by:
joinin interfaceNodeDiscoveryProvider- Parameters:
bootstrap- the bootstrap servicelocalNode- the local node info- Returns:
- a future to be completed once the join is complete
-
leave
Description copied from interface:NodeDiscoveryProviderLeaves the cluster.- Specified by:
leavein interfaceNodeDiscoveryProvider- Parameters:
localNode- the local node info- Returns:
- a future to be completed once the leave is complete
-