2015-06-22 169 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 –