Package akka.cluster.sharding
Class ShardCoordinator.AbstractShardAllocationStrategy
- java.lang.Object
 - 
- akka.cluster.sharding.ShardCoordinator.AbstractShardAllocationStrategy
 
 
- 
- All Implemented Interfaces:
 NoSerializationVerificationNeeded,ShardCoordinator.ShardAllocationStrategy
- Enclosing class:
 - ShardCoordinator
 
public abstract static class ShardCoordinator.AbstractShardAllocationStrategy extends java.lang.Object implements ShardCoordinator.ShardAllocationStrategy
Java API: Java implementations of custom shard allocation and rebalancing logic used by theShardCoordinatorshould extend this abstract class and implement the two methods. 
- 
- 
Constructor Summary
Constructors Constructor Description AbstractShardAllocationStrategy() 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract scala.concurrent.Future<ActorRef>allocateShard(ActorRef requester, java.lang.String shardId, java.util.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<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.abstract scala.concurrent.Future<java.util.Set<java.lang.String>>rebalance(java.util.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, java.util.Set<java.lang.String> rebalanceInProgress)Invoked periodically to decide which shards to rebalance to another location.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
- 
allocateShard
public final 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 interfaceShardCoordinator.ShardAllocationStrategy- Parameters:
 requester- actor reference to theShardRegionthat 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 toShardRegionand 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 
 
- 
allocateShard
public abstract scala.concurrent.Future<ActorRef> allocateShard(ActorRef requester, java.lang.String shardId, java.util.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 theShardRegionthat 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 toShardRegionand 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 
 
- 
rebalance
public final 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 interfaceShardCoordinator.ShardAllocationStrategy- Parameters:
 currentShardAllocations- all actor refs toShardRegionand their current allocated shards, in the order they were allocatedrebalanceInProgress- 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 
 
- 
rebalance
public abstract scala.concurrent.Future<java.util.Set<java.lang.String>> rebalance(java.util.Map<ActorRef,scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, java.util.Set<java.lang.String> rebalanceInProgress)
Invoked periodically to decide which shards to rebalance to another location.- Parameters:
 currentShardAllocations- all actor refs toShardRegionand their current allocated shards, in the order they were allocatedrebalanceInProgress- 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 
 
 - 
 
 -