这可能是一个愚蠢的问题,但我已经讨论了好几天。 我浏览了有关群集的akka文档。那里提到我必须在application.conf中列出种子节点IP地址。但是我有一个问题,我该如何设置种子节点。我有一台可以在上面写代码的笔记本电脑,我希望它也可以在另一台机器上使用JVM。我在这里配置什么?
我真的很陌生,请保持温柔。
答案 0 :(得分:0)
首先,只是因为您没有提到它,才需要Akka Cluster。
对于开发,请使用localhost
作为种子节点。选择在本地工作时将始终使用的节点之一:
akka {
remote.netty.tcp {
hostname = localhost
port = 2551
}
cluster.seed-nodes = ["akka.tcp://esc@localhost:2551"]
}
只需确保您将此应用程序的端口用作种子节点端口即可。
任何随后应在本地加入此群集的后续节点都需要这样的配置:
akka {
remote.netty.tcp {
hostname = localhost
port = 0 # automatically select; alternatively choose fixed port different from 2551
}
cluster.seed-nodes = ["akka.tcp://esc@localhost:2551"]
}
然后,您可以在本地运行多个Akka应用程序。
您还可以有一个额外的应用程序充当种子节点(然后在生产中使用两个实例运行)。这只会启动actor系统,然后等待其他节点加入。我们之前做了这个,但是我不太确定这是一个好主意。也许看看Akka Management's Cluster Bootstrap。
也许也可以澄清一下,因为根据我的经验,它是如此混乱:种子节点不一定充当集群中的Leader。它们(因为它们是为其他节点配置的)仅允许其他节点(可以动态分配IP /主机名)相互发现。另请参见documentation。