Interface ClusterNodeHeartbeatService

All Known Subinterfaces:
ClusterHeartbeatService
All Known Implementing Classes:
AbstractClusterNodeHeartbeatService, CrowdClusterNodeHeartbeatService, NoOpClusterNodeHeartbeatService

public interface ClusterNodeHeartbeatService
Provides a heartbeat for nodes of a cluster and utility methods for finding out about the "liveness" of other nodes.
  • Method Details

    • getNodeId

      @Nonnull String getNodeId()
      Returns the node ID for this node.
      Returns:
      the node ID for this node.
    • isNodeLive

      boolean isNodeLive(@Nonnull String nodeId)
      Checks whether the given cluster node is considered "live".

      Each live node will be writing a heartbeat on a set schedule (eg once a minute). A node is considered live if it has written a heartbeat within a reasonable tolerance level (eg 5 minutes).

      The tolerance level needs to be large enough to avoid certain expected slow-downs in the system including GC pauses, or just general slowness in the JVM / scheduler / network / database of the remote node.

      Parameters:
      nodeId - the cluster node to check
      Returns:
      true iff the given cluster node is still "live".
    • getLastHeartbeatTime

      @Nullable Long getLastHeartbeatTime(@Nonnull String nodeId)
      Returns the last time a heartbeat was sent by the given node.

      A null value indicates no heartbeats have ever been sent by the given node.

      Parameters:
      nodeId - the node
      Returns:
      the last time a heartbeat was sent by the given node.
    • findLiveNodes

      @Nonnull Collection<String> findLiveNodes()
      Returns all nodes that have sent a heartbeat within the default threshold time.
      Returns:
      all nodes that have sent a heartbeat within the default threshold time.
      See Also:
    • findLiveNodes

      @Nonnull Collection<String> findLiveNodes(long threshold)
      Returns all nodes that have sent a heartbeat within the given threshold.
      Parameters:
      threshold - the threshold in milliseconds
      Returns:
      all nodes that have sent a heartbeat within the given threshold.
      See Also: