如何将种子节点添加到 运行 akka-cluster

How to add seed nodes to a running akka-cluster

我正在尝试创建一个将部署在 AWS 中的容错 akka 集群。它是一个标准集群,具有 3 个种子节点 SN1、SN2 和 SN3,并且多个 Akka 系统连接到一个种子节点。 SN 具有 ASG,它会在一个实例出现故障时启动一个新实例。

我知道如果 SN1 发生故障,系统将故障转移到其他 SN(种子节点)。但是,如何在不停止集群的情况下无缝注册现在具有新 IP 地址的 SN1。

我尝试了以下但没有成功

有没有人知道如何将种子节点添加到 运行 Akka 集群?

谢谢

请检查:

http://chrisloy.net/2014/05/11/akka-cluster-ec2-autoscaling.html

在 scala 中,但也在使用自动缩放,并解释了如何找到您的新 IP (S1) 和其余 ips (S2...) 并加入它们。

希望能有所帮助。

我们最终通过 zookeeper-seed 插件将 ip address:port 注册到 zookeeper。如果我没记错的话,这个插件实现了一个闩锁。

基本上每个系统都从 zookeeper 获取系统列表。然后它将自己从列表中删除并使用新列表作为其种子节点。

如果我有时间,我会尝试写一些关于实现 24 系统 akka 集群的经验教训。

谢谢

该问题的答案是否定的,您不能将 种子节点 添加到 运行 Akka 集群。

来自 Akka scala-doc:

An actor system can only join a cluster once. Additional attempts will be ignored. When it has successfully joined it must be restarted to be able to join another cluster or to join the same cluster again.

但是您可以启动 node 并连接到已创建的 seed 节点之一 并将动态添加到集群中。

A​​kka 文档中的示例如下: https://doc.akka.io/docs/akka/current/cluster-usage.html#a-simple-cluster-example