C# 如何在Akka.NET中将EntityID分配给碎片的实体?

C# 如何在Akka.NET中将EntityID分配给碎片的实体?,c#,visual-studio,sharding,akka.net,C#,Visual Studio,Sharding,Akka.net,我不明白在ShardRegion中创建新演员时ID是如何分配的,我正在浏览这个示例 如果有人有更清楚的例子,那就太好了。所有针对分片参与者(实体)的消息都必须通过负责实体给定类型的分片区域。分片区域可以这样初始化: var sharding = ClusterSharding.Get(system); var shardRegion = sharding.Start( typeName: nameof(MyActor), entityProps: Props.Create&l

我不明白在ShardRegion中创建新演员时ID是如何分配的,我正在浏览这个示例


如果有人有更清楚的例子,那就太好了。

所有针对分片参与者(实体)的消息都必须通过负责实体给定类型的分片区域。分片区域可以这样初始化:

var sharding = ClusterSharding.Get(system);
var shardRegion = sharding.Start(
    typeName: nameof(MyActor), 
    entityProps: Props.Create<MyActor>(), // the Props used to create entities
    settings: ClusterShardingSettings.Create(system),
    messageExtractor: messageExtractor
);
现在,虽然实体生命周期完全由集群分片管理,并且它们在集群中的实际定位可能会随着时间的推移而改变(由于重新平衡),但它们在给定集群节点中的相对路径始终保持不变,并且符合以下模式:

/user/sharding/<typeName>/<shard-id>/<entity-id>
/user/sharding/<typeName>/<shard-id>/<entity-id>
var entityId = Self.Path.Name;
var shardId = Self.Path.Parent.Name;