我在我的项目中使用akka 2.4-M2。我想用docker部署我的项目。但是,当我使用boot2docker测试两个节点时,会出现问题。我的节点无法连接到种子节点。
build.sbt中的配置如下:
lazy val `topGatewayFrontend` = (project in file("topGatewayFrontend"))
.enablePlugins(PlayScala)
.enablePlugins(DockerPlugin)
.settings(
name := "topGatewayFrontend",
libraryDependencies ++= (Dependencies.topGatewayFrontend ++ Seq(cache, ws)),
dockerExposedPorts := Seq(9000)
)
lazy val `topGatewayBackend` = (project in file("topGatewayBackend"))
.enablePlugins(JavaAppPackaging)
.enablePlugins(DockerPlugin)
.enablePlugins(UniversalPlugin)
.settings(
name := "topGatewayBackend",
javaOptions in run ++= Seq(
"-Djava.library.path=./sigar",
"-Xms128m", "-Xmx512m"),
// this enables custom javaOptions
fork in run := true,
libraryDependencies ++= Dependencies.topGatewayBackend ++ Seq(ws),
dockerExposedPorts := Seq(9527)
).dependsOn(auditApi).aggregate(auditApi)
topGatewayFrontend中的远程配置是:
akka{
remote {
log-sent-messages = on
log-received-messages = on
netty.tcp {
hostname = ${?HOSTNAME}
port = 9527 # external (logical) port
bind-hostname = 0.0.0.0
bind-port = 0
}
}
cluster {
seed-nodes = ["akka.tcp://application@"${?HOSTNAME}":9527"]
roles = [topGatewayBackend]
}
}
topGatewayBackend是:
akka{
remote {
log-sent-messages = on
log-received-messages = on
netty.tcp {
hostname = ${?HOSTNAME}
port = 0 # external (logical) port
bind-hostname = 0.0.0.0
bind-port = 0
}
}
cluster {
seed-nodes = ["akka.tcp://application@"${?HOSTNAME}":9527"]
roles = [topGatewayFrontend]
}
}
我得到的日志如下:
在后端:
[INFO] [07/12/2015 03:13:37.568] [application-akka.actor.default-dispatcher-16] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:9527] - Metrics collection has started successfully
[INFO] [07/12/2015 03:13:38.107] [application-akka.actor.default-dispatcher-16] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:9527] - Leader is moving node [akka.tcp://application@192.168.59.103:9527] to [Up]
[INFO] [07/12/2015 03:13:38.112] [application-akka.actor.default-dispatcher-4] [akka.tcp://application@192.168.59.103:9527/user/cluster-monitor] Member up akka.tcp://application@192.168.59.103:9527 with roles Set(topGatewayBackend)
在前端:
[INFO] [07/12/2015 03:13:47.558] [main] [akka.remote.Remoting] Starting remoting
[INFO] [07/12/2015 03:13:47.842] [main] [akka.remote.Remoting] Remoting started; listening on addresses :[akka.tcp://application@192.168.59.103:34354]
[INFO] [07/12/2015 03:13:47.883] [main] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:34354] - Starting up...
[INFO] [07/12/2015 03:13:48.057] [main] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:34354] - Registered cluster JMX MBean [akka:type=Cluster]
[INFO] [07/12/2015 03:13:48.058] [main] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:34354] - Started up successfully
[INFO] [07/12/2015 03:13:48.251] [application-akka.actor.default-dispatcher-17] [akka.cluster.Cluster(akka://application)] Cluster Node [akka.tcp://application@192.168.59.103:34354] - Metrics collection has started successfully
[WARN] [07/12/2015 03:13:48.509] [application-akka.remote.default-remote-dispatcher-5] [akka.tcp://application@192.168.59.103:34354/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fapplication%40192.168.59.103%3A9527-0] Association with remote system [akka.tcp://application@192.168.59.103:9527] has failed, address is now gated for [5000] ms. Reason: [Association failed with [akka.tcp://application@192.168.59.103:9527]] Caused by: [The remote system explicitly disassociated (reason unknown).]
问题是 [关联失败[akka.tcp://application@192.168.59.103:9527]]引起:[远程系统明确解除关联(原因未知)。]
docker run命令是:
docker run -e HOSTNAME=192.168.59.103 -p 9527:9527 docker.fenxibao.com/topgatewaybackend:1.0-SNAPSHOT
和docker run -p 9000:9000 -e HOSTNAME=192.168.59.103 docker.fenxibao.com/topgatewayfrontend:1.0-SNAPSHOT
我想知道我能做些什么才能使前端合作伙伴成功地与后端合作。
提前感谢您的患者答案。