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:RoutingLogicPick 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 whateverRouteeto 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:
selectin 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:
productPrefixin interfacescala.Product
-
productArity
public int productArity()
- Specified by:
productArityin interfacescala.Product
-
productElement
public java.lang.Object productElement(int x$1)
- Specified by:
productElementin interfacescala.Product
-
productIterator
public scala.collection.Iterator<java.lang.Object> productIterator()
- Specified by:
productIteratorin interfacescala.Product
-
canEqual
public boolean canEqual(java.lang.Object x$1)
- Specified by:
canEqualin interfacescala.Equals
-
productElementName
public java.lang.String productElementName(int x$1)
- Specified by:
productElementNamein interfacescala.Product
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object x$1)
- Specified by:
equalsin interfacescala.Equals- Overrides:
equalsin classjava.lang.Object
-
-