Class ConsistentHashingGroup

  • All Implemented Interfaces:
    java.io.Serializable, Group, RouterConfig, 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 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:
    Serialized Form
    • 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 with pekko.actor.ActorSelection to 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: 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<java.lang.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​(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 pekko.routing.ConsistentHash
      • 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:
        productPrefix in interface scala.Product
      • productArity

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

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

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

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

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

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

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

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