Package akka.cluster.sharding.internal
Class AbstractLeastShardAllocationStrategy
- java.lang.Object
-
- akka.cluster.sharding.internal.AbstractLeastShardAllocationStrategy
-
- All Implemented Interfaces:
NoSerializationVerificationNeeded
,ShardCoordinator.ActorSystemDependentAllocationStrategy
,ShardCoordinator.ShardAllocationStrategy
- Direct Known Subclasses:
LeastShardAllocationStrategy
,ShardCoordinator.LeastShardAllocationStrategy
public abstract class AbstractLeastShardAllocationStrategy extends java.lang.Object implements ShardCoordinator.ActorSystemDependentAllocationStrategy
INTERNAL API
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractLeastShardAllocationStrategy.RegionEntry
static class
AbstractLeastShardAllocationStrategy.RegionEntry$
static class
AbstractLeastShardAllocationStrategy.ShardSuitabilityOrdering$
-
Constructor Summary
Constructors Constructor Description AbstractLeastShardAllocationStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description scala.concurrent.Future<ActorRef>
allocateShard(ActorRef requester, java.lang.String shardId, scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
Invoked when the location of a new shard is to be decided.protected ClusterEvent.CurrentClusterState
clusterState()
protected boolean
isAGoodTimeToRebalance(scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry> regionEntries)
protected scala.Tuple2<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>>
mostSuitableRegion(scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry> regionEntries)
protected scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry>
regionEntriesFor(scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
protected Member
selfMember()
void
start(ActorSystem system)
Called before any calls to allocate/rebalance.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface akka.cluster.sharding.ShardCoordinator.ShardAllocationStrategy
rebalance
-
-
-
-
Method Detail
-
start
public void start(ActorSystem system)
Description copied from interface:ShardCoordinator.ActorSystemDependentAllocationStrategy
Called before any calls to allocate/rebalance. Do not block. If asynchronous actions are required they can be started here and delay the Futures returned by allocate/rebalance.- Specified by:
start
in interfaceShardCoordinator.ActorSystemDependentAllocationStrategy
-
clusterState
protected ClusterEvent.CurrentClusterState clusterState()
-
selfMember
protected Member selfMember()
-
allocateShard
public scala.concurrent.Future<ActorRef> allocateShard(ActorRef requester, java.lang.String shardId, scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
Description copied from interface:ShardCoordinator.ShardAllocationStrategy
Invoked when the location of a new shard is to be decided.- Specified by:
allocateShard
in interfaceShardCoordinator.ShardAllocationStrategy
- Parameters:
requester
- actor reference to theShardRegion
that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessedshardId
- the id of the shard to allocatecurrentShardAllocations
- all actor refs toShardRegion
and their current allocated shards, in the order they were allocated- Returns:
- a
Future
of the actor ref of theShardRegion
that is to be responsible for the shard, must be one of the references included in thecurrentShardAllocations
parameter
-
isAGoodTimeToRebalance
protected final boolean isAGoodTimeToRebalance(scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry> regionEntries)
-
mostSuitableRegion
protected final scala.Tuple2<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> mostSuitableRegion(scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry> regionEntries)
-
regionEntriesFor
protected final scala.collection.Iterable<AbstractLeastShardAllocationStrategy.RegionEntry> regionEntriesFor(scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
-
-