Akka和docker在马拉松

我在Mesosphere上有一个使用Marathon来部署Docker应用程序的设置。 现在,每个Docker应用程序都是一个Play应用程序,严重依赖于Akka远程处理。

Marathon与Mesos DNS做的是,它为每个任务cluster分配一个内部DNS地址。

现在,对于两个docker集装箱,这里是我的情况:任务ID: task-A任务DNS: task-A.mesosphere.mesos阿卡远程configuration:

 app { host = ${?APP_HOST} akka { port = 11112 } } akka { jvm-exit-on-fatal-error = false log-dead-letters = 0 actor { provider = "akka.remote.RemoteActorRefProvider" } remote { enabled-transports = ["akka.remote.netty.tcp"] netty.tcp { hostname = ${?app.host} port = ${?app.akka.port} } } } 

现在,该应用程序的docker容器启动端口900011112双方打开: docker run -p 11112:11112 -h task-A.marathon.mesos ...

同样,对于任务B:任务ID: task-A任务DNS: task-A.mesosphere.mesos阿卡远程configuration:

 app { host = ${?APP_HOST} akka { port = 11120 } } akka { jvm-exit-on-fatal-error = false log-dead-letters = 0 actor { provider = "akka.remote.RemoteActorRefProvider" } remote { enabled-transports = ["akka.remote.netty.tcp"] netty.tcp { hostname = ${?app.host} port = ${?app.akka.port} } } } 

现在应用程序的docker容器被启动,双方都打开端口docker run -p 11120:11120 -h task-B.marathon.mesos ...

现在的问题是,我不能通过阿卡让两个任务相互沟通。 例如,如果有任务B的提问,我会得到exception:play.api.Application $$ anon $ 1:执行exception[[AskTimeoutException:询问超时[ActorSelection [Anchor(akka.tcp:// application @ task) -A.marathon.mesos:11112 /),path(/用户/ CoreMaster)]] []后15000毫秒]]]

这里有什么可能是错的?

Interesting Posts