我期待将AKKA(使用Java)用于分布式代理的分层系统,相对独立。会有一个协调的演员,会收到一条消息。它必须创建一些子actor,而不必明确地知道它们,并将消息路由到它们。子actor通过契约扩展AppWorker类。
我想过使用反射来简单地选取从AppWorker扩展的所有类,并创建每个类的实例。也许AKKA有更好的方法可以做到这一点,我可能不知道。我最担心的是,如果通过明确调用actorOf
,我稍后可以将我的应用程序配置为扩展到多台计算机。我希望保持AKKA在机器之间完全平衡演员创建的自由。
你会怎么做?
答案 0 :(得分:0)
AKKA以层次方式创建演员。首先,创建一个Parent actor,然后创建子项以执行所需的子设备集。 创建一个单一协调actor的类,并以下面的方式创建一个AKKA actor: 1.使用单个协调actor的类名创建一个actor系统。 2.使用actor系统的actorOf()方法,并创建父actor。
现在通过调用Parent actor的actorOf()方法并使用withRouter()方法创建子actor。您可以在conf文件中指定要创建的子actor的数量。您也可以在启动儿童演员时提及您需要的监督策略。
对于所有基于AKKA的演员研究以及如何启动他们,请参阅http://doc.akka.io/docs/akka/2.3.9/general/actor-systems.html和http://doc.akka.io/docs/akka/2.3.9/general/actors.html。