public final class AdaptiveLoadBalancingRoutingLogic extends java.lang.Object implements RoutingLogic, NoSerializationVerificationNeeded, scala.Product, scala.Serializable
It uses random selection of routees based on probabilities derived from the remaining capacity of corresponding node.
param: system the actor system hosting this router
param: metricsSelector decides what probability to use for selecting a routee, based on remaining capacity as indicated by the node metrics
Constructor and Description |
---|
AdaptiveLoadBalancingRoutingLogic(ActorSystem system,
MetricsSelector metricsSelector) |
Modifier and Type | Method and Description |
---|---|
abstract static boolean |
canEqual(java.lang.Object that) |
abstract static boolean |
equals(java.lang.Object that) |
void |
metricsChanged(ClusterMetricsChanged event) |
MetricsSelector |
metricsSelector() |
abstract static int |
productArity() |
abstract static java.lang.Object |
productElement(int n) |
static scala.collection.Iterator<java.lang.Object> |
productIterator() |
static java.lang.String |
productPrefix() |
Routee |
select(java.lang.Object message,
scala.collection.immutable.IndexedSeq<Routee> routees)
Pick the destination for a given message.
|
ActorSystem |
system() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public AdaptiveLoadBalancingRoutingLogic(ActorSystem system, MetricsSelector metricsSelector)
public abstract static boolean canEqual(java.lang.Object that)
public abstract static boolean equals(java.lang.Object that)
public abstract static java.lang.Object productElement(int n)
public abstract static int productArity()
public static scala.collection.Iterator<java.lang.Object> productIterator()
public static java.lang.String productPrefix()
public ActorSystem system()
public MetricsSelector metricsSelector()
public final void metricsChanged(ClusterMetricsChanged event)
public Routee select(java.lang.Object message, scala.collection.immutable.IndexedSeq<Routee> routees)
RoutingLogic
routees
, but in the end it is up to the implementation to
return whatever Routee
to use for sending a specific message.
When implemented from Java it can be good to know that
routees.apply(index)
can be used to get an element
from the IndexedSeq
.
select
in interface RoutingLogic
message
- (undocumented)routees
- (undocumented)