Package akka.cluster.metrics
Class AdaptiveLoadBalancingGroup
- java.lang.Object
-
- akka.cluster.metrics.AdaptiveLoadBalancingGroup
-
- All Implemented Interfaces:
Group
,RouterConfig
,java.io.Serializable
,scala.Equals
,scala.Product
public final class AdaptiveLoadBalancingGroup extends java.lang.Object implements Group, scala.Product, java.io.Serializable
A router group that performs 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.
The configuration parameter trumps the constructor arguments. This means that if you provide
paths
during instantiation they will be ignored if the router is defined in the configuration file for the actor being used.param: metricsSelector decides what probability to use for selecting a routee, based on remaining capacity as indicated by the node metrics
param: paths string representation of the actor paths of the routees, messages are sent with
ActorSelection
to these pathsparam: routerDispatcher dispatcher to use for the router head actor, which handles router management messages
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, java.lang.Iterable<java.lang.String> routeesPaths)
Java APIAdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
AdaptiveLoadBalancingGroup(com.typesafe.config.Config config, DynamicAccess dynamicAccess)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static MetricsSelector
$lessinit$greater$default$1()
static scala.collection.immutable.Iterable<java.lang.String>
$lessinit$greater$default$2()
static java.lang.String
$lessinit$greater$default$3()
static AdaptiveLoadBalancingGroup
apply(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
static MetricsSelector
apply$default$1()
static scala.collection.immutable.Iterable<java.lang.String>
apply$default$2()
static java.lang.String
apply$default$3()
boolean
canEqual(java.lang.Object x$1)
AdaptiveLoadBalancingGroup
copy(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
MetricsSelector
copy$default$1()
scala.collection.immutable.Iterable<java.lang.String>
copy$default$2()
java.lang.String
copy$default$3()
Router
createRouter(ActorSystem system)
Create the actual router, responsible for routing messages to routees.boolean
equals(java.lang.Object x$1)
int
hashCode()
MetricsSelector
metricsSelector()
scala.collection.immutable.Iterable<java.lang.String>
paths()
scala.collection.immutable.Iterable<java.lang.String>
paths(ActorSystem system)
int
productArity()
java.lang.Object
productElement(int x$1)
java.lang.String
productElementName(int x$1)
scala.collection.Iterator<java.lang.Object>
productIterator()
java.lang.String
productPrefix()
java.lang.String
routerDispatcher()
Dispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messagesscala.Option<Props>
routingLogicController(RoutingLogic routingLogic)
Possibility to define an actor for controlling the routing logic from external stimuli (e.g.java.lang.String
toString()
static scala.Option<scala.Tuple3<MetricsSelector,scala.collection.immutable.Iterable<java.lang.String>,java.lang.String>>
unapply(AdaptiveLoadBalancingGroup x$0)
AdaptiveLoadBalancingGroup
withDispatcher(java.lang.String dispatcherId)
Setting the dispatcher to be used for the router head actor, which handles router management messages-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface akka.routing.Group
createRouterActor, props, routeeFor
-
Methods inherited from interface akka.routing.RouterConfig
isManagementMessage, stopRouterWhenAllRouteesRemoved, verifyConfig, withFallback
-
-
-
-
Constructor Detail
-
AdaptiveLoadBalancingGroup
public AdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
-
AdaptiveLoadBalancingGroup
public AdaptiveLoadBalancingGroup(com.typesafe.config.Config config, DynamicAccess dynamicAccess)
-
AdaptiveLoadBalancingGroup
public AdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, java.lang.Iterable<java.lang.String> routeesPaths)
Java API- Parameters:
metricsSelector
- decides what probability to use for selecting a routee, based on remaining capacity as indicated by the node metricsrouteesPaths
- string representation of the actor paths of the routees, messages are sent withActorSelection
to these paths
-
-
Method Detail
-
$lessinit$greater$default$1
public static MetricsSelector $lessinit$greater$default$1()
-
$lessinit$greater$default$2
public static scala.collection.immutable.Iterable<java.lang.String> $lessinit$greater$default$2()
-
$lessinit$greater$default$3
public static java.lang.String $lessinit$greater$default$3()
-
apply
public static AdaptiveLoadBalancingGroup apply(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
-
apply$default$1
public static MetricsSelector apply$default$1()
-
apply$default$2
public static scala.collection.immutable.Iterable<java.lang.String> apply$default$2()
-
apply$default$3
public static java.lang.String apply$default$3()
-
unapply
public static scala.Option<scala.Tuple3<MetricsSelector,scala.collection.immutable.Iterable<java.lang.String>,java.lang.String>> unapply(AdaptiveLoadBalancingGroup x$0)
-
metricsSelector
public MetricsSelector metricsSelector()
-
paths
public scala.collection.immutable.Iterable<java.lang.String> paths()
-
routerDispatcher
public java.lang.String routerDispatcher()
Description copied from interface:RouterConfig
Dispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messages- Specified by:
routerDispatcher
in interfaceRouterConfig
-
paths
public scala.collection.immutable.Iterable<java.lang.String> paths(ActorSystem system)
-
createRouter
public Router createRouter(ActorSystem system)
Description copied from interface:RouterConfig
Create the actual router, responsible for routing messages to routees.- Specified by:
createRouter
in interfaceRouterConfig
- Parameters:
system
- the ActorSystem this router belongs to
-
routingLogicController
public scala.Option<Props> routingLogicController(RoutingLogic routingLogic)
Description copied from interface:RouterConfig
Possibility to define an actor for controlling the routing logic from external stimuli (e.g. monitoring metrics). This actor will be a child of the router "head" actor. Management messages not handled by the "head" actor are delegated to this controller actor.- Specified by:
routingLogicController
in interfaceRouterConfig
-
withDispatcher
public AdaptiveLoadBalancingGroup withDispatcher(java.lang.String dispatcherId)
Setting the dispatcher to be used for the router head actor, which handles router management messages
-
copy
public AdaptiveLoadBalancingGroup copy(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<java.lang.String> paths, java.lang.String routerDispatcher)
-
copy$default$1
public MetricsSelector copy$default$1()
-
copy$default$2
public scala.collection.immutable.Iterable<java.lang.String> copy$default$2()
-
copy$default$3
public java.lang.String copy$default$3()
-
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
-
-