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

时间:2015-05-20 17:36:16

标签: akka akka.net

blog讨论减少使用 ActorSelection 来选择演员。

我有一个拥有10000个产品演员的 CatalogActorSystem 。所有这些演员的名字都是他们的ids。如果我需要访问具有id的产品,例如 Product_5000 ,并且不应该使用ActorSelection,我必须有一个集合(使用字典或ICollection实现)的产品像 CatalogActorsCache 这样的演员中的演员,必须迭代所有演员才能找到合适的演员。

我是不是应该使用ActorSelection找到合适的产品而不是我的搜索算法,或者使用 Dictionary 并将密钥作为产品ID?

1 个答案:

答案 0 :(得分:2)

如果您有多个具有相同目的的参与者,您可能希望间接访问它们,即在发件人和收件人之间设置另一个参与者。 Akka.NET中的每个演员都收集了它的孩子ActorRef。只需使用Child(actorName)即可返回它们。因此,您可以利用它来获得优势,让这个演员(让我们称之为协调员)能够根据需要生成您的孩子(产品)演员和/或在请求时将裁判返回给他们。

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