[英]How can I guarantee a pooled AKKA actor only sends and receives from it's own child actor?
[英]How can I look up a reference to a remote actor from a different system in akka?
我有一個在端口2552上運行的ActorSystem,另一個在端口2553上運行。每個都創建一個實例化單例對象的Actor。 我現在想要創建另一個管理這兩個系統的系統,並且可以引用這些actor以便同時使用單例。
我知道演員正在監聽端口,因為它為每個端口提供了這樣的日志
Remoting started; listening on addresses :[akka.tcp://singletonApplication@127.0.0.1:2552]
當我使用調試器查看對象時,actor就會顯示出來
Actor[akka://singletonApplication/user/singleton]
我使用創建管理器系統
ActorSystem system = ActorSystem.create("managerSystem");
但是當我嘗試通過以下行引用遠程actor時
system.actorSelection("akka.tcp://singletonApplication@127.0.0.1:2552/user/singleton");
它在對象中給了我這個
ActorSelection[Actor[akka://managerApplication/deadLetters]/user/singleton]
當我嘗試發送一條消息時,它在控制台中給出了一個死信錯誤日志我不太確定我做錯了但看起來我試圖用來查找遠程actor的系統搞亂了我的actorSelection呼叫。 我是否需要在同一系統內才能引用遠程演員? 我認為這是使用akka的要點之一?
您說您正在從其他系統訪問遠程actor。 但我發現你使用127.0.0.1來解決遠程系統問題。 127.0.0.1是一個特殊的環回地址,指的是本地機器。 所以你需要提供可尋址的IP來訪問遠程機器。
有關Loopback的更多信息,請查看http://en.wikipedia.org/wiki/Loopback
文檔中也明確說明了這一點:
“注意
如果部署到多台計算機上,請務必將默認IP 127.0.0.1替換為系統可訪問的實際地址! “
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.