这两种集群配置有什么区别?

What is the difference between these two cluster configurations?

我看到有一个名为 "roles" 的设置,您可以在 Akka.Cluster 配置中指定。如果我理解正确,entities/actors 在实体角色和节点 "roles" 配置设置匹配的节点上只有 运行。

我还在 Akka.Cluster.Sharding 中看到另一个名为 "role" 的配置设置。这个和上面的设置有什么区别?

角色是您用来标记每个演员系统的标签,没什么特别的。

您可以通过检查 Cluster(system).selfRoles.

来实现不同的 behaviours/logic,具体取决于您的代码 运行 在其中的角色系统

Akka 集群分片和集群单例使用它来限制 shard/singleton 到一组标记有特定角色的参与者系统的部署。

总而言之,您提到的这两个角色是同一枚硬币的不同侧面。 akka.cluster.roles 是 actor 系统的标签,akka.cluster.sharding 中的角色设置指示仅在标记有该角色的节点上启动分片。