降低akka群集中节点/成员的正确方法

问题描述 投票:1回答:1

当节点在akka群集中变得无法访问时,是否有任何适当的方法来关闭该节点。当某个节点变得无法访问时,我想向其暴露一个api,但我更喜欢以编程方式找到其他方式。自从我出现脑裂问题以来,自动下降不再是一种选择。

我可以只使用receive方法中的节点:

def接收:接收= {案例MemberUp(member)=>

case UnreachableMember(member) => {      
  Cluster(context.system).down(member.address)
}
akka akka-cluster akka-persistence akka-monitoring
1个回答
1
投票

如果该节点已崩溃,则可以在其他任何节点上将其关闭。

但是您必须这样做,以使其无法访问,如果它是网络分区而不是节点崩溃,则将导致大脑分裂。分区的每一侧都会看到其余的群集,并且无法正常运行所有这些,最后您将得到两个集群,认为它们使另一端崩溃了。

这是我们在Akka 2.6中删除了自动关闭功能的确切原因

如果要自动去除具有裂脑分辨率的节点,您将需要使用/实施一个为您处理的downing提供程序。

您自己实施一个令人沮丧的提供者将需要大量的努力并仔细考虑。有关该问题的更多背景信息,您可以在此处阅读商用Lightbend SBR的文档:https://doc.akka.io/docs/akka-enhancements/current/split-brain-resolver.html

© www.soinside.com 2019 - 2024. All rights reserved.