Packages

c

akka.cluster.sharding.ShardCoordinator

AbstractShardAllocationStrategy

abstract class AbstractShardAllocationStrategy extends ShardAllocationStrategy

Java API: Java implementations of custom shard allocation and rebalancing logic used by the ShardCoordinator should extend this abstract class and override allocateNewShard and rebalanceShard.

Earlier versions of this API had different extension points. Overriding those is still supported but they may be removed in a future release.

Source
ShardCoordinator.scala
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AbstractShardAllocationStrategy
  2. ShardAllocationStrategy
  3. NoSerializationVerificationNeeded
  4. AnyRef
  5. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new AbstractShardAllocationStrategy()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toany2stringadd[AbstractShardAllocationStrategy] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (AbstractShardAllocationStrategy, B)
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toArrowAssoc[AbstractShardAllocationStrategy] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def allocateNewShard(requester: ActorRef, shardId: String, currentShardAllocations: Map[ActorRef, IndexedSeq[String]]): CompletionStage[ActorRef]

    Invoked when the location of a new shard is to be decided.

    Invoked when the location of a new shard is to be decided.

    New implementations of this class should override this method instead of overriding allocateShard.

    For compatibility with earlier versions of this API, this method's default implementation returns an immediately-failing java.util.concurrent.CompletionStage.

    requester

    actor reference to the ShardRegion that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessed

    shardId

    the id of the shard to allocate

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    returns

    a java.util.concurrent.CompletionStage of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the currentShardAllocations parameter

    Annotations
    @nowarn()
  7. final def allocateShard(requester: ActorRef, shardId: ShardId, currentShardAllocations: Map[ActorRef, IndexedSeq[ShardId]]): Future[ActorRef]

    Invoked when the location of a new shard is to be decided.

    Invoked when the location of a new shard is to be decided.

    requester

    actor reference to the ShardRegion that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessed

    shardId

    the id of the shard to allocate

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    returns

    a Future of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the currentShardAllocations parameter

    Definition Classes
    AbstractShardAllocationStrategyShardAllocationStrategy
    Annotations
    @nowarn()
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  10. def ensuring(cond: (AbstractShardAllocationStrategy) => Boolean, msg: => Any): AbstractShardAllocationStrategy
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (AbstractShardAllocationStrategy) => Boolean): AbstractShardAllocationStrategy
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: => Any): AbstractShardAllocationStrategy
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): AbstractShardAllocationStrategy
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  16. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  17. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  22. final def rebalance(currentShardAllocations: Map[ActorRef, IndexedSeq[ShardId]], rebalanceInProgress: Set[ShardId]): Future[Set[ShardId]]

    Invoked periodically to decide which shards to rebalance to another location.

    Invoked periodically to decide which shards to rebalance to another location.

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    rebalanceInProgress

    set of shards that are currently being rebalanced, i.e. you should not include these in the returned set

    returns

    a Future of the shards to be migrated, may be empty to skip rebalance in this round

    Definition Classes
    AbstractShardAllocationStrategyShardAllocationStrategy
    Annotations
    @nowarn()
  23. def rebalanceShards(currentShardAllocations: Map[ActorRef, IndexedSeq[String]], rebalanceInProgress: Set[String]): CompletionStage[Set[String]]

    Invoked periodically to decide which shards to rebalance to another location.

    Invoked periodically to decide which shards to rebalance to another location.

    New implementations of this class should override this method instead of overriding rebalance.

    For compatibility with earlier versions of this API, this method's default implementation returns an immediately-failing java.util.concurrent.CompletionStage.

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    rebalanceInProgress

    set of shards that are currently being rebalanced, i.e. you should not include these in the returned set

    returns

    a java.util.concurrent.CompletionStage of the set of shards to be migrated, may be empty to skip rebalance in this round

    Annotations
    @nowarn()
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def allocateShard(requester: ActorRef, shardId: String, currentShardAllocations: Map[ActorRef, IndexedSeq[String]]): Future[ActorRef]

    Invoked when the location of a new shard is to be decided.

    Invoked when the location of a new shard is to be decided.

    The default implementation defers to allocateNewShard. In earlier versions of this API, this Scala Future-returning method was the extension point.

    New implementations of this class should prefer to override allocateNewShard. This method may be removed in a future release.

    requester

    actor reference to the ShardRegion that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessed

    shardId

    the id of the shard to allocate

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    returns

    a Future of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the currentShardAllocations parameter

    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.10) prefer allocateNewShard

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  3. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toStringFormat[AbstractShardAllocationStrategy] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  4. def rebalance(currentShardAllocations: Map[ActorRef, IndexedSeq[String]], rebalanceInProgress: Set[String]): Future[Set[String]]

    Invoked periodically to decide which shards to rebalance to another location.

    Invoked periodically to decide which shards to rebalance to another location.

    The default implementation defers to rebalanceShards. In earlier versions of this API, this Scala Future-returning method was the extension point.

    New implementations of this class should prefer to override rebalanceShards. This method may be removed in a future release

    currentShardAllocations

    all actor refs to ShardRegion and their current allocated shards, in the order they were allocated

    rebalanceInProgress

    set of shards that are currently being rebalanced, i.e. you should not include these in the returned set

    returns

    a Future of the shards to be migrated, may be empty to skip rebalance in this round

    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.10) prefer rebalanceShards

  5. def [B](y: B): (AbstractShardAllocationStrategy, B)
    Implicit
    This member is added by an implicit conversion from AbstractShardAllocationStrategy toArrowAssoc[AbstractShardAllocationStrategy] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromAbstractShardAllocationStrategy to any2stringadd[AbstractShardAllocationStrategy]

Inherited by implicit conversion StringFormat fromAbstractShardAllocationStrategy to StringFormat[AbstractShardAllocationStrategy]

Inherited by implicit conversion Ensuring fromAbstractShardAllocationStrategy to Ensuring[AbstractShardAllocationStrategy]

Inherited by implicit conversion ArrowAssoc fromAbstractShardAllocationStrategy to ArrowAssoc[AbstractShardAllocationStrategy]

Ungrouped