Class Entity<M,E>
- java.lang.Object
-
- akka.cluster.sharding.typed.javadsl.Entity<M,E>
-
public final class Entity<M,E> extends java.lang.Object
Props
of the entity actors, such as dispatcher settings.
-
-
Constructor Summary
Constructors Constructor Description Entity()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Optional<ShardCoordinator.ShardAllocationStrategy>
allocationStrategy()
Function<EntityContext<M>,Behavior<M>>
createBehavior()
Props
entityProps()
java.util.Optional<ShardingMessageExtractor<E,M>>
messageExtractor()
static <M> Entity<M,ShardingEnvelope<M>>
of(EntityTypeKey<M> typeKey, Function<EntityContext<M>,Behavior<M>> createBehavior)
static <Command,Event,State>
Entity<Command,ShardingEnvelope<Command>>ofPersistentEntity(EntityTypeKey<Command> typeKey, Function<EntityContext<Command>,EventSourcedEntity<Command,Event,State>> createPersistentEntity)
Defines how theEventSourcedEntity
should be created.java.util.Optional<ClusterShardingSettings>
settings()
java.util.Optional<M>
stopMessage()
EntityTypeKey<M>
typeKey()
Entity<M,E>
withAllocationStrategy(ShardCoordinator.ShardAllocationStrategy newAllocationStrategy)
Allocation strategy which decides on which nodes to allocate new shards,ClusterSharding.defaultShardAllocationStrategy(akka.cluster.sharding.typed.ClusterShardingSettings)
is used if this is not specified.Entity<M,E>
withEntityProps(Props newEntityProps)
<Envelope> Entity<M,Envelope>
withMessageExtractor(ShardingMessageExtractor<Envelope,M> newExtractor)
If amessageExtractor
is not specified the messages are sent to the entities by wrapping them inShardingEnvelope
with the entityId of the recipient actor.Entity<M,E>
withSettings(ClusterShardingSettings newSettings)
Additional settings, typically loaded from configuration.Entity<M,E>
withStopMessage(M newStopMessage)
Message sent to an entity to tell it to stop, e.g.
-
-
-
Method Detail
-
of
public static <M> Entity<M,ShardingEnvelope<M>> of(EntityTypeKey<M> typeKey, Function<EntityContext<M>,Behavior<M>> createBehavior)
-
ofPersistentEntity
public static <Command,Event,State> Entity<Command,ShardingEnvelope<Command>> ofPersistentEntity(EntityTypeKey<Command> typeKey, Function<EntityContext<Command>,EventSourcedEntity<Command,Event,State>> createPersistentEntity)
Defines how theEventSourcedEntity
should be created. Used inClusterSharding.init(akka.cluster.sharding.typed.javadsl.Entity<M, E>)
. AnyBehavior
can be used as a sharded entity actor, but the combination of sharding and persistent actors is very common and therefore this factory is provided as convenience.More optional settings can be defined using the
with
methods of the returnedEntity
.- Parameters:
typeKey
- A key that uniquely identifies the type of entity in this clustercreatePersistentEntity
- Create thePersistentEntity
for an entity given aEntityContext
(includes entityId)- Returns:
- (undocumented)
-
createBehavior
public Function<EntityContext<M>,Behavior<M>> createBehavior()
-
typeKey
public EntityTypeKey<M> typeKey()
-
stopMessage
public java.util.Optional<M> stopMessage()
-
entityProps
public Props entityProps()
-
settings
public java.util.Optional<ClusterShardingSettings> settings()
-
messageExtractor
public java.util.Optional<ShardingMessageExtractor<E,M>> messageExtractor()
-
allocationStrategy
public java.util.Optional<ShardCoordinator.ShardAllocationStrategy> allocationStrategy()
-
withSettings
public Entity<M,E> withSettings(ClusterShardingSettings newSettings)
Additional settings, typically loaded from configuration.- Parameters:
newSettings
- (undocumented)- Returns:
- (undocumented)
-
withStopMessage
public Entity<M,E> withStopMessage(M newStopMessage)
Message sent to an entity to tell it to stop, e.g. when rebalanced or passivated. If this is not defined it will be stopped automatically. It can be useful to define a custom stop message if the entity needs to perform some asynchronous cleanup or interactions before stopping.- Parameters:
newStopMessage
- (undocumented)- Returns:
- (undocumented)
-
withMessageExtractor
public <Envelope> Entity<M,Envelope> withMessageExtractor(ShardingMessageExtractor<Envelope,M> newExtractor)
If amessageExtractor
is not specified the messages are sent to the entities by wrapping them inShardingEnvelope
with the entityId of the recipient actor. That envelope is used by theHashCodeMessageExtractor
for extracting entityId and shardId. The number of shards is then defined bynumberOfShards
inClusterShardingSettings
, which by default is configured withakka.cluster.sharding.number-of-shards
.- Parameters:
newExtractor
- (undocumented)- Returns:
- (undocumented)
-
withAllocationStrategy
public Entity<M,E> withAllocationStrategy(ShardCoordinator.ShardAllocationStrategy newAllocationStrategy)
Allocation strategy which decides on which nodes to allocate new shards,ClusterSharding.defaultShardAllocationStrategy(akka.cluster.sharding.typed.ClusterShardingSettings)
is used if this is not specified.- Parameters:
newAllocationStrategy
- (undocumented)- Returns:
- (undocumented)
-
-