如何在Akka中配置种子节点系统

时间:2018-10-14 12:04:19

标签: scala akka akka-cluster typesafe

这可能是一个愚蠢的问题,但我已经讨论了好几天。 我浏览了有关群集的akka​​文档。那里提到我必须在application.conf中列出种子节点IP地址。但是我有一个问题,我该如何设置种子节点。我有一台可以在上面写代码的笔记本电脑,我希望它也可以在另一台机器上使用JVM。我在这里配置什么?

我真的很陌生,请保持温柔。

1 个答案:

答案 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

相关问题