akka.routing
Class ConsistentHashingGroup

java.lang.Object
  extended by 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, scala.Serializable

A router group that uses consistent hashing to select a routee based on the sent message. The selection is described in 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.

See Also:
Serialized Form

Constructor Summary
ConsistentHashingGroup(com.typesafe.config.Config config)
           
ConsistentHashingGroup(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
 Router createRouter(ActorSystem system)
          Create the actual router, responsible for routing messages to routees.
 scala.PartialFunction<java.lang.Object,java.lang.Object> hashMapping()
           
 scala.collection.immutable.Iterable<java.lang.String> paths()
           
 java.lang.String routerDispatcher()
          Dispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messages
 int virtualNodesFactor()
           
 ConsistentHashingGroup withDispatcher(java.lang.String dispatcherId)
          Setting the dispatcher to be used for the router head actor, which handles router management messages
 RouterConfig withFallback(RouterConfig other)
          Uses the the hashMapping 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 in ConsistentHash
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface akka.routing.Group
createRouterActor, props, routeeFor
 
Methods inherited from interface akka.routing.RouterConfig
isManagementMessage, routingLogicController, stopRouterWhenAllRouteesRemoved, verifyConfig
 
Methods inherited from interface scala.Product
productArity, productElement, productIterator, productPrefix
 
Methods inherited from interface scala.Equals
canEqual, equals
 

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)
Method Detail

paths

public scala.collection.immutable.Iterable<java.lang.String> paths()
Specified by:
paths in interface Group

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 interface RouterConfig

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 interface RouterConfig
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 in 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 the the hashMapping defined in code, since that can't be defined in configuration.

Specified by:
withFallback in interface RouterConfig