Packages

class Cluster extends Extension

This module is responsible cluster membership information. Changes to the cluster information is retrieved through #subscribe. Commands to operate the cluster is available through methods in this class, such as #join, #down and #leave.

Each cluster Member is identified by its akka.actor.Address, and the cluster address of this actor system is #selfAddress. A member also has a status; initially MemberStatus Joining followed by MemberStatus Up.

Source
Cluster.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Cluster
  2. Extension
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Cluster(system: ExtendedActorSystem)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from Cluster toany2stringadd[Cluster] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (Cluster, B)
    Implicit
    This member is added by an implicit conversion from Cluster toArrowAssoc[Cluster] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  8. val crossDcFailureDetector: FailureDetectorRegistry[Address]
  9. def down(address: Address): Unit

    Send command to DOWN the node specified by 'address'.

    Send command to DOWN the node specified by 'address'.

    When a member is considered by the failure detector to be unreachable the leader is not allowed to perform its duties, such as changing status of new joining members to 'Up'. The status of the unreachable member must be changed to 'Down', which can be done with this method.

  10. lazy val downingProvider: DowningProvider
  11. def ensuring(cond: (Cluster) => Boolean, msg: => Any): Cluster
    Implicit
    This member is added by an implicit conversion from Cluster toEnsuring[Cluster] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: (Cluster) => Boolean): Cluster
    Implicit
    This member is added by an implicit conversion from Cluster toEnsuring[Cluster] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean, msg: => Any): Cluster
    Implicit
    This member is added by an implicit conversion from Cluster toEnsuring[Cluster] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: Boolean): Cluster
    Implicit
    This member is added by an implicit conversion from Cluster toEnsuring[Cluster] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. val failureDetector: FailureDetectorRegistry[Address]
  18. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  19. def getSelfRoles: Set[String]

    Java API: roles that this member has

  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. def isTerminated: Boolean

    Returns true if this cluster instance has be shutdown.

  23. def join(address: Address): Unit

    Try to join this cluster node with the node specified by 'address'.

    Try to join this cluster node with the node specified by 'address'. A 'Join(selfAddress)' command is sent to the node to join.

    An actor system can only join a cluster once. Additional attempts will be ignored. When it has successfully joined it must be restarted to be able to join another cluster or to join the same cluster again.

    The name of the akka.actor.ActorSystem must be the same for all members of a cluster.

  24. def joinSeedNodes(seedNodes: List[Address]): Unit

    Java API

    Java API

    Join the specified seed nodes without defining them in config. Especially useful from tests when Addresses are unknown before startup time.

    An actor system can only join a cluster once. Additional attempts will be ignored. When it has successfully joined it must be restarted to be able to join another cluster or to join the same cluster again.

  25. def joinSeedNodes(seedNodes: Seq[Address]): Unit

    Join the specified seed nodes without defining them in config.

    Join the specified seed nodes without defining them in config. Especially useful from tests when Addresses are unknown before startup time.

    An actor system can only join a cluster once. Additional attempts will be ignored. When it has successfully joined it must be restarted to be able to join another cluster or to join the same cluster again.

  26. def leave(address: Address): Unit

    Send command to issue state transition to LEAVING for the node specified by 'address'.

    Send command to issue state transition to LEAVING for the node specified by 'address'. The member will go through the status changes MemberStatus Leaving (not published to subscribers) followed by MemberStatus Exiting and finally MemberStatus Removed.

    Note that this command can be issued to any member in the cluster, not necessarily the one that is leaving. The cluster extension, but not the actor system or JVM, of the leaving member will be shutdown after the leader has changed status of the member to Exiting. Thereafter the member will be removed from the cluster. Normally this is handled automatically, but in case of network failures during this process it might still be necessary to set the node’s status to Down in order to complete the removal.

  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  30. def prepareForFullClusterShutdown(): Unit

    Change the state of every member in preparation for a full cluster shutdown.

  31. def registerOnMemberRemoved(callback: Runnable): Unit

    Java API: The supplied thunk will be run, once, when current cluster member is Removed.

    Java API: The supplied thunk will be run, once, when current cluster member is Removed. If the cluster has already been shutdown the thunk will run on the caller thread immediately. If this is called "at the same time" as shutdown() there is a possibility that the the thunk is not invoked. It's often better to use akka.actor.CoordinatedShutdown for this purpose.

  32. def registerOnMemberRemoved[T](code: => T): Unit

    The supplied thunk will be run, once, when current cluster member is Removed.

    The supplied thunk will be run, once, when current cluster member is Removed. If the cluster has already been shutdown the thunk will run on the caller thread immediately. If this is called "at the same time" as shutdown() there is a possibility that the the thunk is not invoked. It's often better to use akka.actor.CoordinatedShutdown for this purpose.

  33. def registerOnMemberUp(callback: Runnable): Unit

    Java API: The supplied callback will be run, once, when current cluster member is Up.

    Java API: The supplied callback will be run, once, when current cluster member is Up. Typically used together with configuration option akka.cluster.min-nr-of-members to defer some action, such as starting actors, until the cluster has reached a certain size.

  34. def registerOnMemberUp[T](code: => T): Unit

    The supplied thunk will be run, once, when current cluster member is Up.

    The supplied thunk will be run, once, when current cluster member is Up. Typically used together with configuration option akka.cluster.min-nr-of-members to defer some action, such as starting actors, until the cluster has reached a certain size.

  35. def remotePathOf(actorRef: ActorRef): ActorPath

    Generate the remote actor path by replacing the Address in the RootActor Path for the given ActorRef with the cluster's selfAddress, unless address' host is already defined

  36. def selfAddress: Address

    The address of this cluster member.

  37. def selfMember: Member

    Current snapshot of the member itself

  38. def selfRoles: Set[String]

    roles that this member has

  39. val selfUniqueAddress: UniqueAddress

    The address including a uid of this cluster member.

    The address including a uid of this cluster member. The uid is needed to be able to distinguish different incarnations of a member with same hostname and port.

  40. def sendCurrentClusterState(receiver: ActorRef): Unit

    Send current (full) state of the cluster to the specified receiver.

    Send current (full) state of the cluster to the specified receiver. If you want this to happen periodically you need to schedule a call to this method yourself. Note that you can also retrieve the current state with #state.

  41. def setAppVersionLater(appVersion: CompletionStage[util.Version]): Unit

    Java API: If the appVersion is read from an external system (e.g.

    Java API: If the appVersion is read from an external system (e.g. Kubernetes) it can be defined after system startup but before joining by completing the appVersion CompletionStage. In that case, setAppVersionLater should be called before calling join or joinSeedNodes. It's fine to call join or joinSeedNodes immediately afterwards (before the CompletionStage is completed. The join will then wait for the appVersion to be completed.

  42. def setAppVersionLater(appVersion: Future[util.Version]): Unit

    Scala API: If the appVersion is read from an external system (e.g.

    Scala API: If the appVersion is read from an external system (e.g. Kubernetes) it can be defined after system startup but before joining by completing the appVersion Future. In that case, setAppVersionLater should be called before calling join or joinSeedNodes. It's fine to call join or joinSeedNodes immediately afterwards (before the Future is completed. The join will then wait for the appVersion to be completed.

  43. val settings: ClusterSettings
  44. def state: CurrentClusterState

    Current snapshot state of the cluster.

  45. def subscribe(subscriber: ActorRef, initialStateMode: SubscriptionInitialStateMode, to: Class[_]*): Unit

    Subscribe to one or more cluster domain events.

    Subscribe to one or more cluster domain events. The to classes can be akka.cluster.ClusterEvent.ClusterDomainEvent or subclasses.

    If initialStateMode is ClusterEvent.InitialStateAsEvents the events corresponding to the current state will be sent to the subscriber to mimic what you would have seen if you were listening to the events when they occurred in the past.

    If initialStateMode is ClusterEvent.InitialStateAsSnapshot a snapshot of akka.cluster.ClusterEvent.CurrentClusterState will be sent to the subscriber as the first message.

    Note that for large clusters it is more efficient to use InitialStateAsSnapshot.

    Annotations
    @varargs()
  46. def subscribe(subscriber: ActorRef, to: Class[_]*): Unit

    Subscribe to one or more cluster domain events.

    Subscribe to one or more cluster domain events. The to classes can be akka.cluster.ClusterEvent.ClusterDomainEvent or subclasses.

    A snapshot of akka.cluster.ClusterEvent.CurrentClusterState will be sent to the subscriber as the first message.

    Annotations
    @varargs()
  47. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  48. val system: ExtendedActorSystem
  49. def toString(): String
    Definition Classes
    AnyRef → Any
  50. def unsubscribe(subscriber: ActorRef, to: Class[_]): Unit

    Unsubscribe to a specific type of cluster domain events, matching previous subscribe registration.

  51. def unsubscribe(subscriber: ActorRef): Unit

    Unsubscribe to all cluster domain events.

  52. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  53. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  54. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from Cluster toStringFormat[Cluster] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def selfDataCenter: DataCenter

    Data center to which this node belongs to (defaults to "default" if not configured explicitly)

    Data center to which this node belongs to (defaults to "default" if not configured explicitly)

    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use Akka Distributed Cluster instead

  4. def [B](y: B): (Cluster, B)
    Implicit
    This member is added by an implicit conversion from Cluster toArrowAssoc[Cluster] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from Extension

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromCluster to any2stringadd[Cluster]

Inherited by implicit conversion StringFormat fromCluster to StringFormat[Cluster]

Inherited by implicit conversion Ensuring fromCluster to Ensuring[Cluster]

Inherited by implicit conversion ArrowAssoc fromCluster to ArrowAssoc[Cluster]

Ungrouped