Package akka.routing
Class ConsistentHashingGroup
- java.lang.Object
-
- akka.routing.ConsistentHashingGroup
-
- All Implemented Interfaces:
Group,RouterConfig,java.io.Serializable,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 inConsistentHashingRoutingLogic.The configuration parameter trumps the constructor arguments. This means that if you provide
pathsduring 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
ActorSelectionto these pathsparam: virtualNodesFactor number of virtual nodes per node, used in
ConsistentHashparam: 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 ConsistentHashingGroupapply(scala.collection.immutable.Iterable<java.lang.String> paths, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping, java.lang.String routerDispatcher)static intapply$default$2()static scala.PartialFunction<java.lang.Object,java.lang.Object>apply$default$3()static java.lang.Stringapply$default$4()booleancanEqual(java.lang.Object x$1)ConsistentHashingGroupcopy(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()intcopy$default$2()scala.PartialFunction<java.lang.Object,java.lang.Object>copy$default$3()java.lang.Stringcopy$default$4()RoutercreateRouter(ActorSystem system)Create the actual router, responsible for routing messages to routees.booleanequals(java.lang.Object x$1)inthashCode()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)intproductArity()java.lang.ObjectproductElement(int x$1)java.lang.StringproductElementName(int x$1)scala.collection.Iterator<java.lang.Object>productIterator()java.lang.StringproductPrefix()java.lang.StringrouterDispatcher()Dispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messagesjava.lang.StringtoString()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)intvirtualNodesFactor()ConsistentHashingGroupwithDispatcher(java.lang.String dispatcherId)Setting the dispatcher to be used for the router head actor, which handles router management messagesRouterConfigwithFallback(RouterConfig other)Uses thehashMappingdefined in code, since that can't be defined in configuration.ConsistentHashingGroupwithHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper)Java API: Setting the mapping from message to the data to use for the consistent hash key.ConsistentHashingGroupwithVirtualNodesFactor(int vnodes)Setting the number of virtual nodes per node, used inConsistentHash-
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, 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 withActorSelectionto 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:RouterConfigDispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messages- Specified by:
routerDispatcherin interfaceRouterConfig
-
paths
public scala.collection.immutable.Iterable<java.lang.String> paths(ActorSystem system)
-
createRouter
public Router createRouter(ActorSystem system)
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
-
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 inConsistentHash
-
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 thehashMappingdefined in code, since that can't be defined in configuration.- Specified by:
withFallbackin 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:
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
-
-