Package org.apache.pekko.cluster.metrics
Class AdaptiveLoadBalancingGroup
java.lang.Object
org.apache.pekko.cluster.metrics.AdaptiveLoadBalancingGroup
- All Implemented Interfaces:
Serializable,Group,RouterConfig,scala.Equals,scala.Product
public final class AdaptiveLoadBalancingGroup
extends Object
implements Group, scala.Product, 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 pekko.actor.ActorSelection to these paths
param: routerDispatcher dispatcher to use for the router head actor, which handles router management messages
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAdaptiveLoadBalancingGroup(com.typesafe.config.Config config, DynamicAccess dynamicAccess) AdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, Iterable<String> routeesPaths) Java APIAdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<String> paths, String routerDispatcher) -
Method Summary
Modifier and TypeMethodDescriptionstatic MetricsSelectorstatic scala.collection.immutable.Iterable<String>static Stringstatic AdaptiveLoadBalancingGroupapply(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<String> paths, String routerDispatcher) static MetricsSelectorstatic scala.collection.immutable.Iterable<String>static Stringbooleancopy(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<String> paths, String routerDispatcher) scala.collection.immutable.Iterable<String>createRouter(ActorSystem system) Create the actual router, responsible for routing messages to routees.booleaninthashCode()scala.collection.immutable.Iterable<String>paths()scala.collection.immutable.Iterable<String>paths(ActorSystem system) intproductElement(int x$1) productElementName(int x$1) scala.collection.Iterator<Object>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.toString()static scala.Option<scala.Tuple3<MetricsSelector,scala.collection.immutable.Iterable<String>, String>> withDispatcher(String dispatcherId) Setting the dispatcher to be used for the router head actor, which handles router management messagesMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.pekko.routing.Group
createRouterActor, props, routeeForMethods inherited from interface scala.Product
productElementNamesMethods inherited from interface org.apache.pekko.routing.RouterConfig
isManagementMessage, stopRouterWhenAllRouteesRemoved, verifyConfig, withFallback
-
Constructor Details
-
AdaptiveLoadBalancingGroup
public AdaptiveLoadBalancingGroup(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<String> paths, String routerDispatcher) -
AdaptiveLoadBalancingGroup
-
AdaptiveLoadBalancingGroup
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 withpekko.actor.ActorSelectionto these paths
-
-
Method Details
-
$lessinit$greater$default$1
-
$lessinit$greater$default$2
-
$lessinit$greater$default$3
-
apply
public static AdaptiveLoadBalancingGroup apply(MetricsSelector metricsSelector, scala.collection.immutable.Iterable<String> paths, String routerDispatcher) -
apply$default$1
-
apply$default$2
-
apply$default$3
-
unapply
public static scala.Option<scala.Tuple3<MetricsSelector,scala.collection.immutable.Iterable<String>, unapplyString>> (AdaptiveLoadBalancingGroup x$0) -
metricsSelector
-
paths
-
routerDispatcher
Description copied from interface:RouterConfigDispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messages- Specified by:
routerDispatcherin interfaceRouterConfig
-
paths
-
createRouter
Description copied from interface:RouterConfigCreate the actual router, responsible for routing messages to routees.- Specified by:
createRouterin interfaceRouterConfig- Parameters:
system- the ActorSystem this router belongs to
-
routingLogicController
Description copied from interface:RouterConfigPossibility 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:
routingLogicControllerin interfaceRouterConfig
-
withDispatcher
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<String> paths, String routerDispatcher) -
copy$default$1
-
copy$default$2
-
copy$default$3
-
productPrefix
- Specified by:
productPrefixin interfacescala.Product
-
productArity
public int productArity()- Specified by:
productArityin interfacescala.Product
-
productElement
- Specified by:
productElementin interfacescala.Product
-
productIterator
- Specified by:
productIteratorin interfacescala.Product
-
canEqual
- Specified by:
canEqualin interfacescala.Equals
-
productElementName
- Specified by:
productElementNamein interfacescala.Product
-
hashCode
public int hashCode() -
toString
-
equals
-