2015-06-22 105 views
2

在阅读了大部分Akka文档后,我仍然不明白Akka演员基数的一些基本内容。Akka演员基数

意义,如果我有一个特定的演员,说FizzActor,确实曾经阿卡仅创建它的1个实例,还是需要它产卵的它正实例?如果它可以产生一个actor类的多个实例,那么这是可配置的(如果是这样/怎么做?),还是Akka自己确定要创建多少个实例?是否停止/重新启动/恢复此actor类对actor的所有实例或仅一个子实例执行操作?我是否可以假设Akka协调所有FizzActor实例的状态变化,以便每当我得到ActorRef时,我都会看到一致的状态?

这些似乎都没有涵盖在文档中!

回答

2

Akka的主要哲学是“没有魔力”,即如果您创建演员这就是发生了什么 - 创建一个演员。请参阅Creating Actors with Props上的文档以获得更深入的解释。

其中阿卡需要代替你启动多个演员的照顾一个例子是Pool Routers,其作为文档解释说:

池 - 路由器创建routees作为儿童演员和从路由器,如果删除它们他们终止

+0

谢谢@Konrad(+1) - 那么它甚至*可能*创建同一个演员类的多个实例,如果是这样,配置/代码中的方式/位置?另外,如果是这样,我的其他问题呢(停止演员停止所有实例还是停止所有实例?Akka是否会协调所有实例的状态变化)?再次感谢! – smeeb

+1

演员就像人 - 自主:-)'context.stop(self)'阻止一个演员,你自己 - 任何停止其他演员要求告诉他们停止('juliet!PoisonPill')或父代演员停止其子代,请阅读监督文件:http://doc.akka.io/docs/akka/snapshot/general/supervision.html –