如何使用集群singlton或集群分片在Akka集群为百万个人演员?

hwazgwia  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(147)

我有一个用例,其中将在集群中创建一百万个单独的参与者。
任务将从外部集群接收,我必须确定任务并将其发送给为该任务分配的单个参与者。
如果使用群集分片,如何从群集外部创建执行元,以及如何从群集节点外部向该特定执行元发送消息
如果我使用集群分片,我必须为一个演员创建单独的分片。这意味着
必须为百万个演员创建百万个碎片。
如何识别集群中的分片和参与者?

46qrfjad

46qrfjad1#

如果我使用集群分片,我必须为一个演员创建单独的分片。
碎片只是一组本地参与者,它们都托管在同一个进程中--这是Akka .NET中将实体参与者分组在一起的一种任意方式。(HashCodeMessageExtractor)基于实体参与者的唯一id将实体参与者分配给碎片,您可以从通过ShardRegionIMessageExtractor(最常见的是HashCodeMessageExtractor)发送给它的消息内容中提取这些消息。
这是一个很好的工具,能够在大型集群中水平分布数百万参与者--前几天我刚刚发布了一个示例,其中我运行了200个Akka.NET节点,总共有2000个碎片(每个节点10个),能够承载数千万参与者:https://github.com/petabridge/AkkaDotNet.LargeNetworkTests-您可能会发现这很有帮助!

相关问题