如何在没有 ActorSelection 的情况下从 AKKA 的深层图中获取演员?

How to get an actor from a deep graph in AKKA without ActorSelection?

blog 谈到少用 ActorSelection 到 select 一个演员。

我有一个 CatalogActorSystem 有 10000 个产品角色。所有这些演员都有名字,这实际上是他们的身份。如果我需要访问 ID 为 Product_5000 的产品并且不应该使用 ActorSelection,我必须有一个 集合(用字典实现或 ICollection) 中的产品参与者,例如 CatalogActorsCache,并且必须迭代所有这些参与者才能找到正确的参与者。

我不应该使用 ActorSelection 来定位正确的产品而不是我的任何搜索算法,或者使用 Dictionary 并将键作为产品 ID?

如果您有多个具有相同目的的参与者,您可能希望间接访问它们,即在发送者和接收者之间设置另一个参与者。 Akka.NET 中的每个演员都有其子 ActorRef 的集合。只需使用 Child(actorName) 即可返回它们。因此,您可以利用它来发挥自己的优势,让这个 actor(我们称它为 Coordinator)能够按需生成您的子(产品)actor and/or 在请求时向他们返回 refs。

前段时间我创建了 an example,它更详细地说明了这个概念。