我们的应用程序中有一个特殊的场景——这个应用程序中的所有子角色都处理大量数据(大约 50 - 200 MB)。因此,我们决定在创建父actor的同一台机器(工作进程)中创建子actor。
目前,这是通过使用角色来实现的。我们还使用 .NET 内存缓存在子 Actor 之间传输数据(几 MB)。
问题:是否可以关闭子actor中的聚类以达到我们期望的结果?
编辑:更具体地说,我在下面详细解释了我们的应用程序设置。
- 整个过程发生在大约 5 台机器的 Akka.NET 集群中
- 工作进程(包含父actor和子actor)部署在每台机器中
- 在此设置中,父actor和子actor都启用了集群
当我们发现将子actor分布在机器上造成的网络开销时,我们决定将子actor的创建限制在接收到主要请求的相应机器上,并且只在机器上分布父actor。
在与解决此问题的 Akka.NET 专家联系时,我们被建议使用“角色”来将子角色的创建限制在集群系统中的单台机器上。(例如,Worker1Child、Worker2Child 而不是“Child”角色)
问题(续):我只想知道,如果简单地在子角色中禁用集群选项会达到相同的结果;这样做是最佳做法吗?
请指教。