Package akka.cluster

Class Cluster

  • All Implemented Interfaces:
    Extension

    public class Cluster
    extends java.lang.Object
    implements Extension
    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.
    • Method Detail

      • lookup

        public static Cluster$ lookup()
      • isAssertInvariantsEnabled

        public static final boolean isAssertInvariantsEnabled()
        INTERNAL API
        Returns:
        (undocumented)
      • apply

        public static T apply​(ActorSystem system)
      • hashCode

        public static final int hashCode()
      • equals

        public static final boolean equals​(java.lang.Object other)
      • ClusterLogger

        public Cluster.ClusterLogger$ ClusterLogger()
        Accessor for nested Scala object
        Returns:
        (undocumented)
      • subscribe

        public void subscribe​(ActorRef subscriber,
                              java.lang.Class<?>... to)
      • subscribe

        public void subscribe​(ActorRef subscriber,
                              ClusterEvent.SubscriptionInitialStateMode initialStateMode,
                              java.lang.Class<?>... to)
        Subscribe to one or more cluster domain events. The to classes can be 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 ClusterEvent.CurrentClusterState will be sent to the subscriber as the first message.

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

        Parameters:
        subscriber - (undocumented)
        initialStateMode - (undocumented)
        to - (undocumented)
      • selfUniqueAddress

        public UniqueAddress selfUniqueAddress()
        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.
        Returns:
        (undocumented)
      • selfAddress

        public Address selfAddress()
        The address of this cluster member.
        Returns:
        (undocumented)
      • selfDataCenter

        public java.lang.String selfDataCenter()
        Data center to which this node belongs to (defaults to "default" if not configured explicitly)
      • selfRoles

        public scala.collection.immutable.Set<java.lang.String> selfRoles()
        roles that this member has
        Returns:
        (undocumented)
      • getSelfRoles

        public java.util.Set<java.lang.String> getSelfRoles()
        Java API: roles that this member has
        Returns:
        (undocumented)
      • scheduler

        public Scheduler scheduler()
        INTERNAL API
        Returns:
        (undocumented)
      • clusterCore

        public ActorRef clusterCore()
        INTERNAL API
        Returns:
        (undocumented)
      • isTerminated

        public boolean isTerminated()
        Returns true if this cluster instance has be shutdown.
        Returns:
        (undocumented)
      • selfMember

        public Member selfMember()
        Current snapshot of the member itself
        Returns:
        (undocumented)
      • subscribe

        public void subscribe​(ActorRef subscriber,
                              scala.collection.Seq<java.lang.Class<?>> to)
        Subscribe to one or more cluster domain events. The to classes can be ClusterEvent.ClusterDomainEvent or subclasses.

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

        Parameters:
        subscriber - (undocumented)
        to - (undocumented)
      • subscribe

        public void subscribe​(ActorRef subscriber,
                              ClusterEvent.SubscriptionInitialStateMode initialStateMode,
                              scala.collection.Seq<java.lang.Class<?>> to)
        Subscribe to one or more cluster domain events. The to classes can be 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 ClusterEvent.CurrentClusterState will be sent to the subscriber as the first message.

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

        Parameters:
        subscriber - (undocumented)
        initialStateMode - (undocumented)
        to - (undocumented)
      • unsubscribe

        public void unsubscribe​(ActorRef subscriber)
        Unsubscribe to all cluster domain events.
        Parameters:
        subscriber - (undocumented)
      • unsubscribe

        public void unsubscribe​(ActorRef subscriber,
                                java.lang.Class<?> to)
        Unsubscribe to a specific type of cluster domain events, matching previous subscribe registration.
        Parameters:
        subscriber - (undocumented)
        to - (undocumented)
      • sendCurrentClusterState

        public void sendCurrentClusterState​(ActorRef 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().
        Parameters:
        receiver - (undocumented)
      • join

        public void join​(Address 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 ActorSystem must be the same for all members of a cluster.

        Parameters:
        address - (undocumented)
      • joinSeedNodes

        public void joinSeedNodes​(scala.collection.immutable.Seq<Address> seedNodes)
        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.

        Parameters:
        seedNodes - (undocumented)
      • joinSeedNodes

        public void joinSeedNodes​(java.util.List<Address> seedNodes)
        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.

        Parameters:
        seedNodes - (undocumented)
      • leave

        public void leave​(Address 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&rsquo;s status to Down in order to complete the removal.

        Parameters:
        address - (undocumented)
      • down

        public void down​(Address 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.

        Parameters:
        address - (undocumented)
      • registerOnMemberUp

        public <T> void registerOnMemberUp​(scala.Function0<T> code)
        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.
        Parameters:
        code - (undocumented)
      • registerOnMemberUp

        public void registerOnMemberUp​(java.lang.Runnable callback)
        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.
        Parameters:
        callback - (undocumented)
      • registerOnMemberRemoved

        public <T> void registerOnMemberRemoved​(scala.Function0<T> code)
        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. Typically used together cluster.leave(cluster.selfAddress) and then system.terminate().
        Parameters:
        code - (undocumented)
      • registerOnMemberRemoved

        public void registerOnMemberRemoved​(java.lang.Runnable callback)
        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. Typically used together cluster.leave(cluster.selfAddress) and then system.terminate().
        Parameters:
        callback - (undocumented)
      • remotePathOf

        public ActorPath remotePathOf​(ActorRef actorRef)
        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
        Parameters:
        actorRef - (undocumented)
        Returns:
        (undocumented)
      • shutdown

        public void shutdown()
        INTERNAL API.

        Shuts down all connections to other members, the cluster daemon and the periodic gossip and cleanup tasks.

        Should not called by the user. The user can issue a LEAVE command which will tell the node to go through graceful handoff process LEAVE -&gt; EXITING -&gt; REMOVED -&gt; SHUTDOWN.