abstract class PoolRouter[T] extends DeferredBehavior[T]
Provides builder style configuration options for pool routers
Not for user extension. Use Routers#pool to create
- Annotations
- @DoNotInherit()
- Source
- Routers.scala
- Alphabetic
- By Inheritance
- PoolRouter
- DeferredBehavior
- Behavior
- AnyRef
- Any
- by BehaviorDecorators
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new PoolRouter()
Abstract Value Members
-
abstract
def
apply(ctx: TypedActorContext[T]): Behavior[T]
- Definition Classes
- DeferredBehavior
-
abstract
def
withConsistentHashingRouting(virtualNodesFactor: Int, mapping: Function[T, String]): PoolRouter[T]
Route messages by using consistent hashing.
Route messages by using consistent hashing.
From wikipedia: Consistent hashing is based on mapping each object to a point on a circle (or equivalently, mapping each object to a real angle). The system maps each available machine (or other storage bucket) to many pseudo-randomly distributed points on the same circle.
- virtualNodesFactor
This factor has to be greater or equal to 1. Assuming that the reader knows what consistent hashing is (if not, please refer: http://www.tom-e-white.com/2007/11/consistent-hashing.html or wiki). This number is responsible for creating additional, virtual addresses for a provided set of routees, so that in the total number of points on hashing ring will be equal to numberOfRoutees * virtualNodesFactor (if virtualNodesFactor is equal to 1, then no additional points will be created). Those virtual nodes are being created by additionally rehashing routees to evenly distribute them across hashing ring. Consider increasing this number when you have a small number of routees. For bigger loads one can aim in having around 100-200 total addresses.
- mapping
Hash key extractor. This function will be used in consistent hashing process. Result of this operation should possibly uniquely distinguish messages.
-
abstract
def
withPoolSize(poolSize: Int): PoolRouter[T]
Set a new pool size from the one set at construction
-
abstract
def
withRandomRouting(): PoolRouter[T]
Route messages by randomly selecting the routee from the available routees.
Route messages by randomly selecting the routee from the available routees.
Random routing makes it less likely that every
poolsize
message from a single producer ends up in the same mailbox of a slow actor. -
abstract
def
withRoundRobinRouting(): PoolRouter[T]
Route messages through round robin, providing a fair distribution of messages across the routees.
Route messages through round robin, providing a fair distribution of messages across the routees.
Round robin gives fair routing where every available routee gets the same amount of messages
This is the default for pool routers.
-
abstract
def
withRouteeProps(routeeProps: Props): PoolRouter[T]
Set the props used to spawn the pool's routees
Concrete 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 PoolRouter[T] to any2stringadd[PoolRouter[T]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (PoolRouter[T], B)
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to ArrowAssoc[PoolRouter[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
behavior: Behavior[T]
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to BehaviorDecorators[T] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Definition Classes
- BehaviorDecorators
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
ensuring(cond: (PoolRouter[T]) ⇒ Boolean, msg: ⇒ Any): PoolRouter[T]
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to Ensuring[PoolRouter[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (PoolRouter[T]) ⇒ Boolean): PoolRouter[T]
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to Ensuring[PoolRouter[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): PoolRouter[T]
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to Ensuring[PoolRouter[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): PoolRouter[T]
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to Ensuring[PoolRouter[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to StringFormat[PoolRouter[T]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
narrow[U <: T]: Behavior[U]
Narrow the type of this Behavior, which is always a safe operation.
Narrow the type of this Behavior, which is always a safe operation. This method is necessary to implement the contravariant nature of Behavior (which cannot be expressed directly due to type inference problems).
- Definition Classes
- Behavior
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transformMessages[Outer](matcher: PartialFunction[Outer, T])(implicit arg0: ClassTag[Outer]): Behavior[Outer]
Transform the incoming messages by placing a funnel in front of the wrapped
Behavior
: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy.Transform the incoming messages by placing a funnel in front of the wrapped
Behavior
: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy. Signals are not transformed.Example:
val b: Behavior[Number] = Behaviors .receive[String] { (ctx, msg) => println(msg) Behaviors.same } .transformMessages[Number] { case b: BigDecimal => s"BigDecimal($b)" case i: BigInt => s"BigInteger($i)" // all other kinds of Number will be `unhandled` }
The
ClassTag
forOuter
ensures that only messages of this class or a subclass thereof will be intercepted. Other message types (e.g. a private protocol) will bypass the interceptor and be continue to the inner behavior untouched.- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to BehaviorDecorators[T] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Definition Classes
- BehaviorDecorators
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (PoolRouter[T], B)
- Implicit
- This member is added by an implicit conversion from PoolRouter[T] to ArrowAssoc[PoolRouter[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc