Package akka.cluster.sharding
Interface ShardCoordinator.ShardAllocationStrategy
- 
- All Superinterfaces:
- NoSerializationVerificationNeeded
 - All Known Subinterfaces:
- ShardCoordinator.ActorSystemDependentAllocationStrategy,- ShardCoordinator.StartableAllocationStrategy
 - All Known Implementing Classes:
- ConsistentHashingShardAllocationStrategy,- ExternalShardAllocationStrategy,- ShardCoordinator.AbstractShardAllocationStrategy,- SliceRangeShardAllocationStrategy
 - Enclosing class:
- ShardCoordinator
 
 public static interface ShardCoordinator.ShardAllocationStrategy extends NoSerializationVerificationNeeded Interface of the pluggable shard allocation and rebalancing logic used by theShardCoordinator.Java implementations should extend ShardCoordinator.AbstractShardAllocationStrategy.
- 
- 
Method SummaryAll Methods Instance Methods Abstract 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.scala.concurrent.Future<scala.collection.immutable.Set<java.lang.String>>rebalance(scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, scala.collection.immutable.Set<java.lang.String> rebalanceInProgress)Invoked periodically to decide which shards to rebalance to another location.
 
- 
- 
- 
Method Detail- 
allocateShardscala.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.- Parameters:
- requester- actor reference to the- ShardRegionthat 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- ShardRegionand their current allocated shards, in the order they were allocated
- Returns:
- a Futureof the actor ref of theShardRegionthat is to be responsible for the shard, must be one of the references included in thecurrentShardAllocationsparameter
 
 - 
rebalancescala.concurrent.Future<scala.collection.immutable.Set<java.lang.String>> rebalance(scala.collection.immutable.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, scala.collection.immutable.Set<java.lang.String> rebalanceInProgress) Invoked periodically to decide which shards to rebalance to another location.- Parameters:
- currentShardAllocations- all actor refs to- ShardRegionand 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 Futureof the shards to be migrated, may be empty to skip rebalance in this round
 
 
- 
 
-