Package org.apache.pekko.routing
Class ConsistentHashingGroup
- java.lang.Object
-
- org.apache.pekko.routing.ConsistentHashingGroup
-
- All Implemented Interfaces:
java.io.Serializable
,Group
,RouterConfig
,scala.Equals
,scala.Product
public final class ConsistentHashingGroup extends java.lang.Object implements Group, scala.Product, java.io.Serializable
A router group that uses consistent hashing to select a routee based on the sent message. The selection is described inpekko.routing.ConsistentHashingRoutingLogic
.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: paths string representation of the actor paths of the routees, messages are sent with
pekko.actor.ActorSelection
to these pathsparam: virtualNodesFactor number of virtual nodes per node, used in
pekko.routing.ConsistentHash
param: hashMapping partial function from message to the data to use for the consistent hash key
param: routerDispatcher dispatcher to use for the router head actor, which handles router management messages
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ConsistentHashingGroup(com.typesafe.config.Config config)
ConsistentHashingGroup(java.lang.Iterable<java.lang.String> routeePaths)
Java APIConsistentHashingGroup(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
$lessinit$greater$default$2()
static scala.PartialFunction<java.lang.Object,java.lang.Object>
$lessinit$greater$default$3()
static java.lang.String
$lessinit$greater$default$4()
static ConsistentHashingGroup
apply(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
static int
apply$default$2()
static scala.PartialFunction<java.lang.Object,java.lang.Object>
apply$default$3()
static java.lang.String
apply$default$4()
boolean
canEqual(java.lang.Object x$1)
ConsistentHashingGroup
copy(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
scala.collection.immutable.Iterable<java.lang.String>
copy$default$1()
int
copy$default$2()
scala.PartialFunction<java.lang.Object,java.lang.Object>
copy$default$3()
java.lang.String
copy$default$4()
Router
createRouter(ActorSystem system)
Create the actual router, responsible for routing messages to routees.boolean
equals(java.lang.Object x$1)
int
hashCode()
scala.PartialFunction<java.lang.Object,java.lang.Object>
hashMapping()
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 messagesjava.lang.String
toString()
static scala.Option<scala.Tuple4<scala.collection.immutable.Iterable<java.lang.String>,java.lang.Object,scala.PartialFunction<java.lang.Object,java.lang.Object>,java.lang.String>>
unapply(ConsistentHashingGroup x$0)
int
virtualNodesFactor()
ConsistentHashingGroup
withDispatcher(java.lang.String dispatcherId)
Setting the dispatcher to be used for the router head actor, which handles router management messagesRouterConfig
withFallback(RouterConfig other)
Uses thehashMapping
defined in code, since that can't be defined in configuration.ConsistentHashingGroup
withHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper)
Java API: Setting the mapping from message to the data to use for the consistent hash key.ConsistentHashingGroup
withVirtualNodesFactor(int vnodes)
Setting the number of virtual nodes per node, used inpekko.routing.ConsistentHash
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.pekko.routing.Group
createRouterActor, props, routeeFor
-
Methods inherited from interface org.apache.pekko.routing.RouterConfig
isManagementMessage, routingLogicController, stopRouterWhenAllRouteesRemoved, verifyConfig
-
-
-
-
Constructor Detail
-
ConsistentHashingGroup
public ConsistentHashingGroup(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
-
ConsistentHashingGroup
public ConsistentHashingGroup(com.typesafe.config.Config config)
-
ConsistentHashingGroup
public ConsistentHashingGroup(java.lang.Iterable<java.lang.String> routeePaths)
Java API- Parameters:
routeePaths
- string representation of the actor paths of the routees, messages are sent withpekko.actor.ActorSelection
to these paths
-
-
Method Detail
-
$lessinit$greater$default$2
public static int $lessinit$greater$default$2()
-
$lessinit$greater$default$3
public static scala.PartialFunction<java.lang.Object,java.lang.Object> $lessinit$greater$default$3()
-
$lessinit$greater$default$4
public static java.lang.String $lessinit$greater$default$4()
-
apply
public static ConsistentHashingGroup apply(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
-
apply$default$2
public static int apply$default$2()
-
apply$default$3
public static scala.PartialFunction<java.lang.Object,java.lang.Object> apply$default$3()
-
apply$default$4
public static java.lang.String apply$default$4()
-
unapply
public static scala.Option<scala.Tuple4<scala.collection.immutable.Iterable<java.lang.String>,java.lang.Object,scala.PartialFunction<java.lang.Object,java.lang.Object>,java.lang.String>> unapply(ConsistentHashingGroup x$0)
-
paths
public scala.collection.immutable.Iterable<java.lang.String> paths()
-
virtualNodesFactor
public int virtualNodesFactor()
-
hashMapping
public scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping()
-
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
-
withDispatcher
public ConsistentHashingGroup withDispatcher(java.lang.String dispatcherId)
Setting the dispatcher to be used for the router head actor, which handles router management messages
-
withVirtualNodesFactor
public ConsistentHashingGroup withVirtualNodesFactor(int vnodes)
Setting the number of virtual nodes per node, used inpekko.routing.ConsistentHash
-
withHashMapper
public ConsistentHashingGroup withHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper)
Java API: Setting the mapping from message to the data to use for the consistent hash key.
-
withFallback
public RouterConfig withFallback(RouterConfig other)
Uses thehashMapping
defined in code, since that can't be defined in configuration.- Specified by:
withFallback
in interfaceRouterConfig
-
copy
public ConsistentHashingGroup copy(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)
-
copy$default$1
public scala.collection.immutable.Iterable<java.lang.String> copy$default$1()
-
copy$default$2
public int copy$default$2()
-
copy$default$3
public scala.PartialFunction<java.lang.Object,java.lang.Object> copy$default$3()
-
copy$default$4
public java.lang.String copy$default$4()
-
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
-
-