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容器启动端口9000
和11112
双方打开: 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毫秒]]]
这里有什么可能是错的?