Class ConsistentHashingGroup

java.lang.Object
org.apache.pekko.routing.ConsistentHashingGroup
All Implemented Interfaces:
Serializable, Group, RouterConfig, scala.Equals, scala.Product

public final class ConsistentHashingGroup extends Object implements Group, scala.Product, Serializable
A router group that uses consistent hashing to select a routee based on the sent message. The selection is described in pekko.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 paths

param: 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:
  • Constructor Details

    • ConsistentHashingGroup

      public ConsistentHashingGroup(scala.collection.immutable.Iterable<String> paths, int virtualNodesFactor, scala.PartialFunction<Object,Object> hashMapping, String routerDispatcher)
    • ConsistentHashingGroup

      public ConsistentHashingGroup(com.typesafe.config.Config config)
    • ConsistentHashingGroup

      public ConsistentHashingGroup(Iterable<String> routeePaths)
      Java API
      Parameters:
      routeePaths - string representation of the actor paths of the routees, messages are sent with pekko.actor.ActorSelection to these paths
  • Method Details

    • $lessinit$greater$default$2

      public static int $lessinit$greater$default$2()
    • $lessinit$greater$default$3

      public static scala.PartialFunction<Object,Object> $lessinit$greater$default$3()
    • $lessinit$greater$default$4

      public static String $lessinit$greater$default$4()
    • apply

      public static ConsistentHashingGroup apply(scala.collection.immutable.Iterable<String> paths, int virtualNodesFactor, scala.PartialFunction<Object,Object> hashMapping, String routerDispatcher)
    • apply$default$2

      public static int apply$default$2()
    • apply$default$3

      public static scala.PartialFunction<Object,Object> apply$default$3()
    • apply$default$4

      public static String apply$default$4()
    • unapply

      public static scala.Option<scala.Tuple4<scala.collection.immutable.Iterable<String>,Object,scala.PartialFunction<Object,Object>,String>> unapply(ConsistentHashingGroup x$0)
    • paths

      public scala.collection.immutable.Iterable<String> paths()
    • virtualNodesFactor

      public int virtualNodesFactor()
    • hashMapping

      public scala.PartialFunction<Object,Object> hashMapping()
    • routerDispatcher

      public String routerDispatcher()
      Description copied from interface: RouterConfig
      Dispatcher ID to use for running the &ldquo;head&rdquo; actor, which handles supervision, death watch and router management messages
      Specified by:
      routerDispatcher in interface RouterConfig
    • paths

      public scala.collection.immutable.Iterable<String> paths(ActorSystem system)
      Specified by:
      paths in interface Group
    • 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(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 pekko.routing.ConsistentHash
    • withHashMapper

      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 hashMapping defined in code, since that can't be defined in configuration.
      Specified by:
      withFallback in interface RouterConfig
    • copy

      public ConsistentHashingGroup copy(scala.collection.immutable.Iterable<String> paths, int virtualNodesFactor, scala.PartialFunction<Object,Object> hashMapping, String routerDispatcher)
    • copy$default$1

      public scala.collection.immutable.Iterable<String> copy$default$1()
    • copy$default$2

      public int copy$default$2()
    • copy$default$3

      public scala.PartialFunction<Object,Object> copy$default$3()
    • copy$default$4

      public String copy$default$4()
    • productPrefix

      public String productPrefix()
      Specified by:
      productPrefix in interface scala.Product
    • productArity

      public int productArity()
      Specified by:
      productArity in interface scala.Product
    • productElement

      public Object productElement(int x$1)
      Specified by:
      productElement in interface scala.Product
    • productIterator

      public scala.collection.Iterator<Object> productIterator()
      Specified by:
      productIterator in interface scala.Product
    • canEqual

      public boolean canEqual(Object x$1)
      Specified by:
      canEqual in interface scala.Equals
    • productElementName

      public String productElementName(int x$1)
      Specified by:
      productElementName in interface scala.Product
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object x$1)
      Specified by:
      equals in interface scala.Equals
      Overrides:
      equals in class Object