以下是一个场景:
问题
Akka系统无法成为集群。我使用默认设置运行192.168.1。 38 ,但192.168.1。 41 有一个额外的属性 - akka.cluster.seed-nodes,设置为{{1 }}。所以我得到了:
akka.tcp://mySystem@192.168.1.38:2551
没有其他错误或警告。另外,我如何测试akka关联或打印调试akka关联设置?
Linux设置也可以影响到akka协会吗?
答案 0 :(得分:2)
最有可能iptables
阻止特定端口,如果您的测试配置只是禁用iptables。
service iptables save
service iptables stop
chkconfig iptables off
service ip6tables save
service ip6tables stop
chkconfig ip6tables off
如果无法尝试使用命令SELinux
检查getenforce
配置,并且出于测试目的相同,则可以完全禁用它。 SELinux manual
如果是application.conf
,请尝试对每个节点使用以下配置:
akka {
log-dead-letters = on
loglevel = "debug"
actor
{
provider = "akka.cluster.ClusterActorRefProvider"
}
extensions = ["akka.contrib.pattern.ClusterReceptionistExtension"]
remote {
log-remote-lifecycle-events = off
netty.tcp {
port = 6001
}
}
cluster {
seed-nodes = [
"akka.tcp://ActorSystem@192.168.1.38:6001",
"akka.tcp://ActorSystem@192.168.1.41:6001"
]
auto-down-unreachable-after = 10s
}
}
与群集节点相关的所有日志都记录为info
,但在测试环境中具有debug
日志级别通常是个好主意。
当第二个节点加入群集时,您应该注意到以下日志:
INFO [ActorSystem-akka.actor.default-dispatcher-4] [Cluster(akka://ActorSystem)] - Cluster Node [akka.tcp://ActorSystem@10.0.1.41:6001] - Marking node(s) as REACHABLE [Member(address = akka.tcp://ActorSystem@10.0.1.41:6001, status = Up)]
也可以使用jmx akka.Cluster
MXBean
{ "self-address": "akka.tcp://ActorSystem@10.0.1.82:6001", "members": [ { "address": "akka.tcp://ActorSystem@10.0.1.82:6001", "status": "Up" } ], "unreachable": [ ] }