Package io.hekate.core.service
Interface ClusterContext
-
public interface ClusterContext
Context forClusterService
.This interface is attended to provide feedback from
ClusterService
toHekate
instance. Other services can also use this interface in order to obtain current cluster topology or register cluster event listeners.- See Also:
InitializationContext.cluster()
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addListener(ClusterEventListener listener)
Synchronously registers the specified cluster event listener.void
addListener(ClusterEventListener listener, ClusterEventType... eventTypes)
Synchronously registers the specified cluster event listener.void
addListenerAsync(ClusterEventListener listener)
Asynchronously registers the specified cluster event listener without waiting registration to be completed.void
addListenerAsync(ClusterEventListener listener, ClusterEventType... eventTypes)
Asynchronously registers the specified cluster event listener without waiting for registration to be completed.CompletableFuture<ClusterJoinEvent>
onJoin(int joinOrder, Set<ClusterNode> newTopology)
Asynchronously notifies this context thatClusterService
has successfully joined the cluster.void
onLeave()
Asynchronously notifies onClusterService
successfully left the cluster.CompletableFuture<ClusterChangeEvent>
onTopologyChange(Set<ClusterNode> live, Set<ClusterNode> failed)
Fires theClusterChangeEvent
.void
removeListener(ClusterEventListener listener)
Synchronously removes the specified cluster event listener.ClusterTopology
topology()
Returns the current cluster topology.
-
-
-
Method Detail
-
onJoin
CompletableFuture<ClusterJoinEvent> onJoin(int joinOrder, Set<ClusterNode> newTopology)
Asynchronously notifies this context thatClusterService
has successfully joined the cluster.- Parameters:
joinOrder
- Join order of the local node (seeClusterNode.joinOrder()
).newTopology
- Initial topology.- Returns:
- Future object that gets completed once notification is processed.
-
onTopologyChange
CompletableFuture<ClusterChangeEvent> onTopologyChange(Set<ClusterNode> live, Set<ClusterNode> failed)
Fires theClusterChangeEvent
.- Parameters:
live
- Nodes that are alive.failed
- Nodes that are known to be failed (i.e. left the cluster abnormally without going through the cluster leave protocol).- Returns:
- Future object that gets completed after processing the cluster event.
-
onLeave
void onLeave()
Asynchronously notifies onClusterService
successfully left the cluster.
-
topology
ClusterTopology topology()
Returns the current cluster topology.- Returns:
- Current cluster topology.
-
addListener
void addListener(ClusterEventListener listener)
Synchronously registers the specified cluster event listener.- Parameters:
listener
- Cluster listener.
-
addListener
void addListener(ClusterEventListener listener, ClusterEventType... eventTypes)
Synchronously registers the specified cluster event listener.- Parameters:
listener
- Cluster listener.eventTypes
- Event types to listen for.
-
addListenerAsync
void addListenerAsync(ClusterEventListener listener)
Asynchronously registers the specified cluster event listener without waiting registration to be completed.- Parameters:
listener
- Cluster listener.
-
addListenerAsync
void addListenerAsync(ClusterEventListener listener, ClusterEventType... eventTypes)
Asynchronously registers the specified cluster event listener without waiting for registration to be completed.- Parameters:
listener
- Cluster listener.eventTypes
- Event types to listen for.
-
removeListener
void removeListener(ClusterEventListener listener)
Synchronously removes the specified cluster event listener.- Parameters:
listener
- Listener to be removed.
-
-