Package akka.cluster.metrics
Class AdaptiveLoadBalancingRoutingLogic
- java.lang.Object
-
- akka.cluster.metrics.AdaptiveLoadBalancingRoutingLogic
-
- All Implemented Interfaces:
NoSerializationVerificationNeeded
,RoutingLogic
,java.io.Serializable
,scala.Equals
,scala.Product
public final class AdaptiveLoadBalancingRoutingLogic extends java.lang.Object implements RoutingLogic, NoSerializationVerificationNeeded, scala.Product, java.io.Serializable
Load balancing of messages to cluster nodes based on cluster metric data.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
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AdaptiveLoadBalancingRoutingLogic(ActorSystem system, MetricsSelector metricsSelector)
-
Method Summary
-
-
-
Constructor Detail
-
AdaptiveLoadBalancingRoutingLogic
public AdaptiveLoadBalancingRoutingLogic(ActorSystem system, MetricsSelector metricsSelector)
-
-
Method Detail
-
$lessinit$greater$default$2
public static MetricsSelector $lessinit$greater$default$2()
-
apply
public static AdaptiveLoadBalancingRoutingLogic apply(ActorSystem system, MetricsSelector metricsSelector)
-
apply$default$2
public static MetricsSelector apply$default$2()
-
unapply
public static scala.Option<scala.Tuple2<ActorSystem,MetricsSelector>> unapply(AdaptiveLoadBalancingRoutingLogic x$0)
-
system
public ActorSystem system()
-
metricsSelector
public MetricsSelector metricsSelector()
-
metricsChanged
public final void metricsChanged(ClusterMetricsChanged event)
-
select
public Routee select(java.lang.Object message, scala.collection.immutable.IndexedSeq<Routee> routees)
Description copied from interface:RoutingLogic
Pick the destination for a given message. Normally it picks one of the passedroutees
, but in the end it is up to the implementation to return whateverRoutee
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 theIndexedSeq
.- Specified by:
select
in interfaceRoutingLogic
-
copy
public AdaptiveLoadBalancingRoutingLogic copy(ActorSystem system, MetricsSelector metricsSelector)
-
copy$default$1
public ActorSystem copy$default$1()
-
copy$default$2
public MetricsSelector copy$default$2()
-
productPrefix
public java.lang.String productPrefix()
- Specified by:
productPrefix
in interfacescala.Product
-
productArity
public int productArity()
- Specified by:
productArity
in interfacescala.Product
-
productElement
public java.lang.Object productElement(int x$1)
- Specified by:
productElement
in interfacescala.Product
-
productIterator
public scala.collection.Iterator<java.lang.Object> productIterator()
- Specified by:
productIterator
in interfacescala.Product
-
canEqual
public boolean canEqual(java.lang.Object x$1)
- Specified by:
canEqual
in interfacescala.Equals
-
productElementName
public java.lang.String productElementName(int x$1)
- Specified by:
productElementName
in interfacescala.Product
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object x$1)
- Specified by:
equals
in interfacescala.Equals
- Overrides:
equals
in classjava.lang.Object
-
-