2015-02-05 69 views
1

我期待着使用AKKA(與Java)爲分佈式代理的分層系統,相對獨立於彼此。會有一個單一的協調參與者,這是一個消息。它必須創建一些兒童演員,而不必明確地知道他們,並將消息發送給他們。兒童演員通過合同擴展AppWorker類。實例化演員而不明確知道他們的名字

我想過使用反射來簡單地獲取從AppWorker擴展的所有類,並創建每個類的實例。也許AKKA有更好的方法來做到這一點,我可能不知道。我最擔心的是,如果明確地調用actorOf,我稍後將能夠將我的應用程序配置爲擴展到多臺計算機。我希望保持AKKA在機器之間創建負載平衡角色的完全自由。

你會如何做到這一點?

回答

0

AKKA以分級方式創建演員。首先,創建一位家長演員,然後創建兒童以執行所需的一組子功能。 創建一個單一的協調演員的類,並按照以下方式創建一個AKKA演員: 1.創建一個演員系統,其中包含單個協調演員的類名。 2.使用actor系統的actorOf()方法並創建父代actor。

現在通過調用Parent actor的actorOf()方法並使用withRouter()方法來創建子actor。您可以提供您想要在conf文件中創建的子actor的數量。您也可以在啓動兒童演員時提及您需要的監督策略。

對於所有基於AKKA的演員研究以及如何啓動它們,請參閱http://doc.akka.io/docs/akka/2.3.9/general/actor-systems.htmlhttp://doc.akka.io/docs/akka/2.3.9/general/actors.html