Package akka.cluster.sharding.external
Class ExternalShardAllocationStrategy
- java.lang.Object
- 
- akka.cluster.sharding.external.ExternalShardAllocationStrategy
 
- 
- All Implemented Interfaces:
- NoSerializationVerificationNeeded,- ShardCoordinator.ShardAllocationStrategy,- ShardCoordinator.StartableAllocationStrategy
 
 public class ExternalShardAllocationStrategy extends java.lang.Object implements ShardCoordinator.StartableAllocationStrategy 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classExternalShardAllocationStrategy.GetShardLocation$static classExternalShardAllocationStrategy.GetShardLocationResponse$static classExternalShardAllocationStrategy.GetShardLocations$static classExternalShardAllocationStrategy.GetShardLocationsResponse$static classExternalShardAllocationStrategy.ShardLocationstatic classExternalShardAllocationStrategy.ShardLocation$
 - 
Constructor SummaryConstructors Constructor Description ExternalShardAllocationStrategy(ClassicActorSystemProvider systemProvider, java.lang.String typeName, Timeout timeout)
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Timeout$lessinit$greater$default$3(ClassicActorSystemProvider systemProvider, java.lang.String typeName)Java APIscala.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.static ExternalShardAllocationStrategyapply(ClassicActorSystemProvider systemProvider, java.lang.String typeName)Scala APIstatic ExternalShardAllocationStrategycreate(ClassicActorSystemProvider systemProvider, java.lang.String typeName)Java APIscala.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.voidstart()Called before any calls to allocate/rebalance.Timeouttimeout()
 
- 
- 
- 
Constructor Detail- 
ExternalShardAllocationStrategypublic ExternalShardAllocationStrategy(ClassicActorSystemProvider systemProvider, java.lang.String typeName, Timeout timeout) 
 
- 
 - 
Method Detail- 
$lessinit$greater$default$3public static Timeout $lessinit$greater$default$3(ClassicActorSystemProvider systemProvider, java.lang.String typeName) Java API
 - 
applypublic static ExternalShardAllocationStrategy apply(ClassicActorSystemProvider systemProvider, java.lang.String typeName) Scala API
 - 
createpublic static ExternalShardAllocationStrategy create(ClassicActorSystemProvider systemProvider, java.lang.String typeName) Java API
 - 
timeoutpublic Timeout timeout() 
 - 
startpublic void start() Description copied from interface:ShardCoordinator.StartableAllocationStrategyCalled 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:
- startin interface- ShardCoordinator.StartableAllocationStrategy
 
 - 
allocateShardpublic 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.ShardAllocationStrategyInvoked when the location of a new shard is to be decided.- Specified by:
- allocateShardin interface- ShardCoordinator.ShardAllocationStrategy
- 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
 
 - 
rebalancepublic 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) Description copied from interface:ShardCoordinator.ShardAllocationStrategyInvoked periodically to decide which shards to rebalance to another location.- Specified by:
- rebalancein interface- ShardCoordinator.ShardAllocationStrategy
- 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
 
 
- 
 
-