final class ClusterSingletonProxy extends Actor with ActorLogging
The ClusterSingletonProxy works together with the akka.cluster.singleton.ClusterSingletonManager to provide a
distributed proxy to the singleton actor.
The proxy can be started on every node where the singleton needs to be reached and used as if it were the singleton itself. It will then act as a router to the currently running singleton instance. If the singleton is not currently available, e.g., during hand off or startup, the proxy will buffer the messages sent to the singleton and then deliver them when the singleton is finally available. The size of the buffer is configurable and it can be disabled by using a buffer size of 0. When the buffer is full old messages will be dropped when new messages are sent via the proxy.
The proxy works by keeping track of the oldest cluster member. When a new oldest member is identified, e.g. because the older one left the cluster, or at startup, the proxy will try to identify the singleton on the oldest member by periodically sending an akka.actor.Identify message until the singleton responds with its akka.actor.ActorIdentity.
Note that this is a best effort implementation: messages can always be lost due to the distributed nature of the actors involved.
- Annotations
- @nowarn()
- Source
- ClusterSingletonProxy.scala
- Alphabetic
- By Inheritance
- ClusterSingletonProxy
- ActorLogging
- Actor
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
-  new ClusterSingletonProxy(singletonManagerPath: String, settings: ClusterSingletonProxySettings)
Type Members
-    type Receive = PartialFunction[Any, Unit]- Definition Classes
- Actor
 
Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def ##: Int- Definition Classes
- AnyRef → Any
 
-    def +(other: String): String- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toany2stringadd[ClusterSingletonProxy] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
 
-    def ->[B](y: B): (ClusterSingletonProxy, B)- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toArrowAssoc[ClusterSingletonProxy] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-    def add(m: Member): UnitAdds new member if it has the right role. Adds new member if it has the right role. - m
- New cluster member. 
 
-  val ageOrdering: Ordering[Member]
-    def aroundPostRestart(reason: Throwable): UnitINTERNAL API. INTERNAL API. Can be overridden to intercept calls to postRestart. CallspostRestartby default.- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
 
-    def aroundPostStop(): UnitINTERNAL API. INTERNAL API. Can be overridden to intercept calls to postStop. CallspostStopby default.- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
 
-    def aroundPreRestart(reason: Throwable, message: Option[Any]): UnitINTERNAL API. INTERNAL API. Can be overridden to intercept calls to preRestart. CallspreRestartby default.- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
 
-    def aroundPreStart(): UnitINTERNAL API. INTERNAL API. Can be overridden to intercept calls to preStart. CallspreStartby default.- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
 
-    def aroundReceive(receive: actor.Actor.Receive, msg: Any): UnitINTERNAL API. INTERNAL API. Can be overridden to intercept calls to this actor's current behavior. - receive
- current behavior. 
- msg
- current message. 
 - Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-  def buffer(msg: Any): Unit
-  var buffer: MessageBuffer
-  def cancelTimer(): Unit
-    def clone(): AnyRef- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
 
-  val cluster: Cluster
-   implicit  val context: ActorContextScala API: Stores the context for this actor, including self, and sender. Scala API: Stores the context for this actor, including self, and sender. It is implicit to support operations such as forward.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads! akka.actor.ActorContext is the Scala API. getContextreturns a akka.actor.AbstractActor.ActorContext, which is the Java API of the actor context.- Definition Classes
- Actor
 
-  def createIdentifyId(i: Int): String
-    def ensuring(cond: (ClusterSingletonProxy) => Boolean, msg: => Any): ClusterSingletonProxy- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toEnsuring[ClusterSingletonProxy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
-    def ensuring(cond: (ClusterSingletonProxy) => Boolean): ClusterSingletonProxy- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toEnsuring[ClusterSingletonProxy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
-    def ensuring(cond: Boolean, msg: => Any): ClusterSingletonProxy- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toEnsuring[ClusterSingletonProxy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
-    def ensuring(cond: Boolean): ClusterSingletonProxy- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toEnsuring[ClusterSingletonProxy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
 
-   final  def eq(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-    def equals(arg0: AnyRef): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def getClass(): Class[_ <: AnyRef]- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
 
-  def handleInitial(state: CurrentClusterState): Unit
-    def hashCode(): Int- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
 
-  var identifyCounter: Int
-  var identifyId: String
-    def identifySingleton(): UnitDiscard old singleton ActorRef and send a periodic message to self to identify the singleton. 
-  var identifyTimer: Option[Cancellable]
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-    def log: LoggingAdapter- Definition Classes
- ActorLogging
 
-  def matchingRole(member: Member): Boolean
-  var membersByAge: SortedSet[Member]
-   final  def ne(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def notify(): Unit- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
 
-   final  def notifyAll(): Unit- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
 
-    def postRestart(reason: Throwable): UnitUser overridable callback: By default it calls preStart().User overridable callback: By default it calls preStart().- reason
- the Throwable that caused the restart to happen Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash. 
 - Definition Classes
- Actor
- Annotations
- @throws(classOf[Exception])
 
-    def postStop(): UnitUser overridable callback. User overridable callback. Is called asynchronously after 'actor.stop()' is invoked. Empty default implementation. - Definition Classes
- ClusterSingletonProxy → Actor
 
-    def preRestart(reason: Throwable, message: Option[Any]): UnitScala API: User overridable callback: By default it disposes of all children and then calls postStop().Scala API: User overridable callback: By default it disposes of all children and then calls postStop().- reason
- the Throwable that caused the restart to happen 
- message
- optionally the current message the actor processed when failing, if applicable Is called on a crashed Actor right BEFORE it is restarted to allow clean up of resources before Actor is terminated. 
 - Definition Classes
- Actor
- Annotations
- @throws(classOf[Exception])
 
-    def preStart(): UnitUser overridable callback. User overridable callback. Is called when an Actor is started. Actors are automatically started asynchronously when created. Empty default implementation. - Definition Classes
- ClusterSingletonProxy → Actor
 
-    def receive: PartialFunction[Any, Unit]Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic. Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic. - Definition Classes
- ClusterSingletonProxy → Actor
 
-    def remove(m: Member): UnitRemoves a member. Removes a member. - m
- Cluster member to remove. 
 
-   implicit final  val self: ActorRefThe 'self' field holds the ActorRef for this actor. The 'self' field holds the ActorRef for this actor. Can be used to send messages to itself: self ! message - Definition Classes
- Actor
 
-  def sendBuffered(): Unit
-   final  def sender(): ActorRefThe reference sender Actor of the last received message. The reference sender Actor of the last received message. Is defined if the message was sent from another Actor, else deadLettersin akka.actor.ActorSystem.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads! - Definition Classes
- Actor
 
-  var singleton: Option[ActorRef]
-  val singletonPath: Array[String]
-    def supervisorStrategy: SupervisorStrategyUser overridable definition the strategy to use for supervising child actors. User overridable definition the strategy to use for supervising child actors. - Definition Classes
- Actor
 
-   final  def synchronized[T0](arg0: => T0): T0- Definition Classes
- AnyRef
 
-    def toString(): String- Definition Classes
- AnyRef → Any
 
-  def trackChange(block: () => Unit): Unit
-    def unhandled(message: Any): UnitUser overridable callback. User overridable callback. Is called when a message isn't handled by the current behavior of the actor by default it fails with either a akka.actor.DeathPactException (in case of an unhandled akka.actor.Terminated message) or publishes an akka.actor.UnhandledMessage to the actor's system's akka.event.EventStream - Definition Classes
- Actor
 
-   final  def wait(arg0: Long, arg1: Int): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
 
-   final  def wait(): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
Deprecated Value Members
-    def finalize(): Unit- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- (Since version 9) 
 
-    def formatted(fmtstr: String): String- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toStringFormat[ClusterSingletonProxy] 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,- formattedresolves to the new method in String which has reversed parameters.
 
-    def →[B](y: B): (ClusterSingletonProxy, B)- Implicit
- This member is added by an implicit conversion from ClusterSingletonProxy toArrowAssoc[ClusterSingletonProxy] 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.