|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object akka.routing.ConsistentHashingRoutingLogic
public final class ConsistentHashingRoutingLogic
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 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 be wrapped in a 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.
Constructor Summary | |
---|---|
ConsistentHashingRoutingLogic(ActorSystem system)
Java API |
|
ConsistentHashingRoutingLogic(ActorSystem system,
int virtualNodesFactor,
scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping)
|
Method Summary | |
---|---|
static Address |
defaultAddress(ActorSystem system)
Address to use for the selfAddress parameter |
scala.PartialFunction<java.lang.Object,java.lang.Object> |
hashMapping()
|
Routee |
select(java.lang.Object message,
scala.collection.immutable.IndexedSeq<Routee> routees)
Pick the destination for a given message. |
ActorSystem |
system()
|
int |
virtualNodesFactor()
|
int |
vnodes()
|
ConsistentHashingRoutingLogic |
withHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper)
Java API: Setting the mapping from message to the data to use for the consistent hash key. |
ConsistentHashingRoutingLogic |
withVirtualNodesFactor(int vnodes)
Setting the number of virtual nodes per node, used in ConsistentHash |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface scala.Product |
---|
productArity, productElement, productIterator, productPrefix |
Methods inherited from interface scala.Equals |
---|
canEqual, equals |
Constructor Detail |
---|
public ConsistentHashingRoutingLogic(ActorSystem system, int virtualNodesFactor, scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping)
public ConsistentHashingRoutingLogic(ActorSystem system)
system
- the actor system hosting this routerMethod Detail |
---|
public static Address defaultAddress(ActorSystem system)
public ActorSystem system()
public int virtualNodesFactor()
public scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping()
public int vnodes()
public ConsistentHashingRoutingLogic withVirtualNodesFactor(int vnodes)
ConsistentHash
public ConsistentHashingRoutingLogic withHashMapper(ConsistentHashingRouter.ConsistentHashMapper mapper)
public Routee select(java.lang.Object message, scala.collection.immutable.IndexedSeq<Routee> routees)
RoutingLogic
routees
, but in the end it is up to the implementation to
return whatever 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 the IndexedSeq
.
select
in interface RoutingLogic
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |