Запуск удаленного Акка за пределами локального хоста - PullRequest
0 голосов
/ 13 сентября 2018

TL; DR: я не могу соединить двух актеров в двух разных сетях.


Привет всем!

Я отчаянно пытаюсь создать приложение, требующее двух актеровЯ использую две разные сети для обмена сообщениями, а не на localhost.

Я пытаюсь создать простого актера с .conf, который позволяет получать доступ из Интернета, следуя документам Акки, но явсегда получаю ошибки.

Это .conf, который я использовал:

akka {
  actor {
    provider = remote
  }
  remote {
    enabled-transports = ["akka.remote.netty.tcp"]
    netty.tcp {
      hostname = [my public ip]
      port = 2552
    }
 }
}

Но компилятор выдает следующее исключение:

[INFO] [09/13/2018 18:33:10.300] [main] [akka.remote.Remoting] Starting remoting
[ERROR] [09/13/2018 18:33:10.744] [TestActor-akka.remote.default-remote-dispatcher-8] [NettyTransport(akka://TestActor)] failed to bind to /[my local ip]:8000, shutting down Netty transport
[ERROR] [09/13/2018 18:33:10.756] [main] [akka.remote.Remoting] Remoting error: [Startup failed] [
akka.remote.RemoteTransportException: Startup failed
 at akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:148)
 at akka.remote.Remoting.start(Remoting.scala:214)
 at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:222)
 at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:840)

Я также пробовал с:

akka {
  remote {
    netty.tcp {
      hostname = [my public ip]      # external (logical) hostname
      port = 8000                   # external (logical) port

      bind-hostname = [my local ip] # internal (bind) hostname
      bind-port = 2552              # internal (bind) port
    }
 }
}

В этом случае работает первый актер, но я не могу связаться с ним от другого актера в другой сети.Когда я пытаюсь достичь этого с помощью

val server = system.actorSelection("akka.tcp://TestActor@[my public ip]:8000/user/serv")

, я получаю сообщение об ошибке, и ничего больше не происходит.

Любая идея / руководство / учебное пособие о том, как заставить эту систему работать?

...