Class ConsistentHashingRoutingLogic
- All Implemented Interfaces:
Serializable
,NoSerializationVerificationNeeded
,RoutingLogic
,scala.Equals
,scala.Product
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionJava APIConsistentHashingRoutingLogic
(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) -
Method Summary
Modifier and TypeMethodDescriptionstatic int
Uses consistent hashing to select a routee based on the sent message.apply
(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) Uses consistent hashing to select a routee based on the sent message.static int
boolean
copy
(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) int
static Address
defaultAddress
(ActorSystem system) boolean
int
hashCode()
int
productElement
(int x$1) productElementName
(int x$1) scala.collection.Iterator<Object>
Pick the destination for a given message.system()
toString()
static scala.Option<scala.Tuple3<ActorSystem,
Object, scala.PartialFunction<Object, Object>>> int
int
vnodes()
Java API: Setting the mapping from message to the data to use for the consistent hash key.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 scala.Product
productElementNames
-
Constructor Details
-
ConsistentHashingRoutingLogic
public ConsistentHashingRoutingLogic(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) -
ConsistentHashingRoutingLogic
Java API- Parameters:
system
- the actor system hosting this router
-
-
Method Details
-
$lessinit$greater$default$2
public static int $lessinit$greater$default$2()Uses consistent hashing to select a routee based on the sent message.There is 3 ways to define what data to use for the consistent hash key.
1. You can define
hashMapping
/withHashMapper
of the router to map incoming messages to their consistent hash key. This makes the decision transparent for the sender.2. The messages may implement
pekko.routing.ConsistentHashingRouter.ConsistentHashable
. The key is part of the message and it's convenient to define it together with the message definition.3. The messages can be wrapped in a
pekko.routing.ConsistentHashingRouter.ConsistentHashableEnvelope
to define what data to use for the consistent hash key. The sender knows the key to use.These ways to define the consistent hash key can be use together and at the same time for one router. The
hashMapping
is tried first.- Parameters:
virtualNodesFactor
- number of virtual nodes per node, used inpekko.routing.ConsistentHash
hashMapping
- partial function from message to the data to use for the consistent hash keysystem
- the actor system hosting this router
-
$lessinit$greater$default$3
-
defaultAddress
-
apply
public static ConsistentHashingRoutingLogic apply(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) Uses consistent hashing to select a routee based on the sent message.There is 3 ways to define what data to use for the consistent hash key.
1. You can define
hashMapping
/withHashMapper
of the router to map incoming messages to their consistent hash key. This makes the decision transparent for the sender.2. The messages may implement
pekko.routing.ConsistentHashingRouter.ConsistentHashable
. The key is part of the message and it's convenient to define it together with the message definition.3. The messages can be wrapped in a
pekko.routing.ConsistentHashingRouter.ConsistentHashableEnvelope
to define what data to use for the consistent hash key. The sender knows the key to use.These ways to define the consistent hash key can be use together and at the same time for one router. The
hashMapping
is tried first.- Parameters:
virtualNodesFactor
- number of virtual nodes per node, used inpekko.routing.ConsistentHash
hashMapping
- partial function from message to the data to use for the consistent hash keysystem
- the actor system hosting this router
-
apply$default$2
public static int apply$default$2() -
apply$default$3
-
unapply
public static scala.Option<scala.Tuple3<ActorSystem,Object, unapplyscala.PartialFunction<Object, Object>>> (ConsistentHashingRoutingLogic x$0) -
system
-
virtualNodesFactor
public int virtualNodesFactor() -
hashMapping
-
vnodes
public int vnodes() -
withVirtualNodesFactor
Setting the number of virtual nodes per node, used inpekko.routing.ConsistentHash
-
withHashMapper
public ConsistentHashingRoutingLogic withHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper) Java API: Setting the mapping from message to the data to use for the consistent hash key. -
select
Description copied from interface:RoutingLogic
Pick 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 whateverpekko.routing.Routee
to 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:
select
in interfaceRoutingLogic
-
copy
public ConsistentHashingRoutingLogic copy(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<Object, Object> hashMapping) -
copy$default$1
-
copy$default$2
public int copy$default$2() -
copy$default$3
-
productPrefix
- Specified by:
productPrefix
in interfacescala.Product
-
productArity
public int productArity()- Specified by:
productArity
in interfacescala.Product
-
productElement
- Specified by:
productElement
in interfacescala.Product
-
productIterator
- Specified by:
productIterator
in interfacescala.Product
-
canEqual
- Specified by:
canEqual
in interfacescala.Equals
-
productElementName
- Specified by:
productElementName
in interfacescala.Product
-
hashCode
public int hashCode() -
toString
-
equals
-