如何远程启动Akka参与者:Akka正在运行\chapter remoting

如何远程启动Akka参与者:Akka正在运行\chapter remoting,akka,actor,remoting,Akka,Actor,Remoting,通过遵循Akka文档,我可以在同一台机器上启动两个参与者(前端和后端),他们可以相互交谈。但是,当我尝试将后端actor部署到另一台机器(Linux)时,我遇到了启动远程处理的错误: ============ 检测到多个主类,请选择一个运行: [1] com.goticks.BackendMain [2] com.goticks.BackendRemoteDeployMain [3] com.goticks.FrontendMain [4] com.goticks.Front

通过遵循Akka文档,我可以在同一台机器上启动两个参与者(前端和后端),他们可以相互交谈。但是,当我尝试将后端actor部署到另一台机器(Linux)时,我遇到了启动远程处理的错误:

============ 检测到多个主类,请选择一个运行:

 [1] com.goticks.BackendMain  
 [2] com.goticks.BackendRemoteDeployMain  
 [3] com.goticks.FrontendMain  
 [4] com.goticks.FrontendRemoteDeployMain  
 [5] com.goticks.FrontendRemoteDeployWatchMain  
 [6] com.goticks.SingleNodeMain  
输入数字:2

[info] Running com.goticks.BackendRemoteDeployMain  
INFO  [Slf4jLogger]: Slf4jLogger started  
INFO  [Remoting]: Starting remoting  
错误[NettyTransport]:无法绑定到/192.168.1.9:2551,正在关闭Netty传输 192.168.1.9是另一台机器

在backend.conf中:

remote {
  enabled-transports = ["akka.remote.netty.tcp"]  
  netty.tcp {  
    #hostname = "0.0.0.0"  
    hostname = "192.168.1.9"  
    port = 2551  
  }  
}  
我有一个基本问题,当在远程JVM上部署和启动远程参与者时,我们需要用户登录到远程机器的信息吗


谢谢,

您不需要用户登录信息,我想您的端口2551已经在hostname=192.168.1.9上使用了,您确定过去没有使用它吗


我也遇到了同样的问题,在我第二次尝试运行程序后,我不小心忘记关闭同一端口上正在运行的程序,线程“main”中发生了
异常org.jboss.netty.channel.ChannelException:无法绑定到:/192.168.3.216:2552

,只需添加有关我上一个问题的更多信息:

检测到多个主类,请选择一个运行:

[1] com.goticks.BackendMain  
[2] com.goticks.BackendRemoteDeployMain  
[3] com.goticks.FrontendMain  
[4] com.goticks.FrontendRemoteDeployMain  
[5] com.goticks.FrontendRemoteDeployWatchMain  
[6] com.goticks.SingleNodeMain  

Enter number: 2  

[info] Running com.goticks.BackendRemoteDeployMain
[DEBUG] [04/18/2016 15:54:11.554] [run-main-0] [EventStream(akka://backend)]     logger log1-Logging$DefaultLogger started  
[DEBUG] [04/18/2016 15:54:11.555] [run-main-0] [EventStream(akka://backend)] Default Loggers started  
[INFO] [04/18/2016 15:54:11.591] [run-main-0] [akka.remote.Remoting] Starting remoting  
[ERROR] [04/18/2016 15:54:11.748] [backend-akka.remote.default-remote-dispatcher-5] [NettyTransport(akka://backend)] failed to bind to /192.168.1.9:2551, shutting down Netty transport  
[ERROR] [04/18/2016 15:54:11.757] [run-main-0] [akka.remote.Remoting] Remoting error: [Startup failed] [
akka.remote.RemoteTransportException: Startup failed at    
akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:136)
        at akka.remote.Remoting.start(Remoting.scala:201)  
        at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:184)  
        at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:663)    
        at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:660)  
        at akka.actor.ActorSystemImpl._start(ActorSystem.scala:660)  
        at akka.actor.ActorSystemImpl.start(ActorSystem.scala:676)  
        at akka.actor.ActorSystem$.apply(ActorSystem.scala:143)  
        at akka.actor.ActorSystem$.apply(ActorSystem.scala:120)  
        at com.goticks.BackendRemoteDeployMain$.delayedEndpoint$com$goticks$BackendRemoteDeployMain$1(BackendRemoteDeployMain.scala:9)  
        at com.goticks.BackendRemoteDeployMain$delayedInit$body.apply(BackendRemoteDeployMain.scala:6)  
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)  
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)  
        at scala.App$$anonfun$main$1.apply(App.scala:76)  
        at scala.App$$anonfun$main$1.apply(App.scala:76)  
        at scala.collection.immutable.List.foreach(List.scala:381)  
        at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)  
        at scala.App$class.main(App.scala:76)  
        at   com.goticks.BackendRemoteDeployMain$.main(BackendRemoteDeployMain.scala:6)  
        at com.goticks.BackendRemoteDeployMain.main(BackendRemoteDeployMain.scala)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
        at java.lang.reflect.Method.invoke(Unknown Source)  
        at sbt.Run.invokeMain(Run.scala:67)  
        at sbt.Run.run0(Run.scala:61)  
        at sbt.Run.sbt$Run$$execute$1(Run.scala:51)  
        at sbt.Run$$anonfun$run$1.apply$mcV$sp(Run.scala:55)  
        at sbt.Run$$anonfun$run$1.apply(Run.scala:55)  
        at sbt.Run$$anonfun$run$1.apply(Run.scala:55)  
        at sbt.Logger$$anon$4.apply(Logger.scala:85)  
        at sbt.TrapExit$App.run(TrapExit.scala:248)  
        at java.lang.Thread.run(Unknown Source)  
 Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /192.168.1.9:2551  
        at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)  
        at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:410)  
        at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:406)  

谢谢你的帮助,@user5025962。2551在远程机器上是免费的(192.168.1.9)。当我将代码复制到远程机器,编译并作为后端ActorSystem手动启动时,它可以与本地机器上的前端进行通信。