現在、ブロードキャスト IP アドレスを使用してアクター システムをセットアップしているため、リモートの akka アクターの IP アドレスを取得する方法があるかどうか疑問に思っていました (これが機能しているように見える唯一の方法です)。現在、アクター パスを確認できますが、ブロードキャスト IP はネットワーク用であるため、アクター パスが存在するマシンを正確に知りたいと考えています。
マスター アクターのコードの一部を次に示します。
# remote actor config
remotecreation{ #user defined name for the configuration
include "common"
akka {
actor{
deployment{
/remoteActor{ #Specifically has to be the name of the remote actor
router = "round-robin"
nr-of-instances = 10
target {
nodes = ["akka://RemoteCreation@172.17.100.232:2554", "akka://RemoteCreation@172.17.100.224:2554"]
}
}
}
}
remote.netty.port = 2554
}
remote{
log-received-messages = on
log-sent-messages = on
}
}
マスター定義は次のとおりです。
class Master(goodies: AuthNetActorObject) extends Actor {
var start: Long = _ // helps measure the calculation time
def receive = {
case "start" => {
System.out.println("Master Started!")
System.out.println("The master is at: " + self.path.toString())
...
}
}
}
アクターを初期化して強打する場所は次のとおりです。
object Payment extends Controller {
var goodies: AuthNetActorObject = null
val system = ActorSystem("RemoteCreation",ConfigFactory.load.getConfig("remotecreation"))
...
val master = system.actorOf(Props(new Master(actorObject)))
master ! "start"
...
}