final class Entity[M, E] extends AnyRef
Defines how the entity should be created. Used in ClusterSharding#init.
- Source
- ClusterSharding.scala
- Alphabetic
- By Inheritance
- Entity
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Value Members
- val allocationStrategy: Option[ShardAllocationStrategy]
- val createBehavior: (EntityContext) ⇒ Behavior[M]
- val entityProps: Props
- val messageExtractor: Option[ShardingMessageExtractor[E, M]]
- val settings: Option[ClusterShardingSettings]
- val stopMessage: Option[M]
- val typeKey: EntityTypeKey[M]
-
def
withAllocationStrategy(newAllocationStrategy: ShardAllocationStrategy): Entity[M, E]
Allocation strategy which decides on which nodes to allocate new shards, ClusterSharding#defaultShardAllocationStrategy is used if this is not specified.
-
def
withEntityProps(newEntityProps: Props): Entity[M, E]
akka.actor.typed.Props of the entity actors, such as dispatcher settings.
-
def
withMessageExtractor[Envelope](newExtractor: ShardingMessageExtractor[Envelope, M]): Entity[M, Envelope]
If a
messageExtractor
is not specified the messages are sent to the entities by wrapping them in ShardingEnvelope with the entityId of the recipient actor.If a
messageExtractor
is not specified the messages are sent to the entities by wrapping them in ShardingEnvelope with the entityId of the recipient actor. That envelope is used by the HashCodeMessageExtractor 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
. -
def
withSettings(newSettings: ClusterShardingSettings): Entity[M, E]
Additional settings, typically loaded from configuration.
-
def
withStopMessage(newStopMessage: M): Entity[M, E]
Message sent to an entity to tell it to stop, e.g.
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.