Class Entity<M,E>
java.lang.Object
org.apache.pekko.cluster.sharding.typed.javadsl.Entity<M,E>
Defines how the entity should be created. Used in
ClusterSharding.init(org.apache.pekko.cluster.sharding.typed.javadsl.Entity<M, E>).-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <M> Entity<M,ShardingEnvelope<M>> of(EntityTypeKey<M> typeKey, Function<EntityContext<M>, Behavior<M>> createBehavior) Defines how the entity should be created.role()settings()typeKey()withAllocationStrategy(ShardCoordinator.ShardAllocationStrategy newAllocationStrategy) Allocation strategy which decides on which nodes to allocate new shards,ClusterSharding.defaultShardAllocationStrategy(org.apache.pekko.cluster.sharding.typed.ClusterShardingSettings)is used if this is not specified.withDataCenter(String newDataCenter) The data center of the cluster nodes where the cluster sharding is running.withEntityProps(Props newEntityProps) pekko.actor.typed.Propsof the entity actors, such as dispatcher settings.withMessageExtractor(ShardingMessageExtractor<Envelope, M> newExtractor) If amessageExtractoris not specified the messages are sent to the entities by wrapping them inShardingEnvelopewith the entityId of the recipient actor.Run the Entity actors on nodes with the given role.withSettings(ClusterShardingSettings newSettings) Additional settings, typically loaded from configuration.withStopMessage(M newStopMessage) Message sent to an entity to tell it to stop, e.g.
-
Constructor Details
-
Entity
public Entity()
-
-
Method Details
-
of
public static <M> Entity<M,ShardingEnvelope<M>> of(EntityTypeKey<M> typeKey, Function<EntityContext<M>, Behavior<M>> createBehavior) Defines how the entity should be created. Used inClusterSharding.init(org.apache.pekko.cluster.sharding.typed.javadsl.Entity<M, E>). More optional settings can be defined using thewithmethods of the returnedEntity.- Parameters:
typeKey- A key that uniquely identifies the type of entity in this clustercreateBehavior- Create the behavior for an entity given aEntityContext(includes entityId)
-
createBehavior
-
typeKey
-
stopMessage
-
entityProps
-
settings
-
messageExtractor
-
allocationStrategy
-
role
-
dataCenter
-
withEntityProps
pekko.actor.typed.Propsof the entity actors, such as dispatcher settings. -
withSettings
Additional settings, typically loaded from configuration. -
withStopMessage
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. -
withMessageExtractor
public <Envelope> Entity<M,Envelope> withMessageExtractor(ShardingMessageExtractor<Envelope, M> newExtractor) If amessageExtractoris not specified the messages are sent to the entities by wrapping them inShardingEnvelopewith the entityId of the recipient actor. That envelope is used by theHashCodeMessageExtractorfor extracting entityId and shardId. The number of shards is then defined bynumberOfShardsinClusterShardingSettings, which by default is configured withpekko.cluster.sharding.number-of-shards. -
withRole
Run the Entity actors on nodes with the given role. -
withDataCenter
The data center of the cluster nodes where the cluster sharding is running. If the dataCenter is not specified then the same data center as current node. If the given dataCenter does not match the data center of the current node theShardRegionwill be started in proxy mode. -
withAllocationStrategy
public Entity<M,E> withAllocationStrategy(ShardCoordinator.ShardAllocationStrategy newAllocationStrategy) Allocation strategy which decides on which nodes to allocate new shards,ClusterSharding.defaultShardAllocationStrategy(org.apache.pekko.cluster.sharding.typed.ClusterShardingSettings)is used if this is not specified.
-