C# 如何正确地重新启动actor系统并将其重新加入刚刚离开的akka集群?
“重新启动参与者系统”对于akka集群意味着什么? 假设我有一个种子节点a和另一个节点B,执行以下代码:C# 如何正确地重新启动actor系统并将其重新加入刚刚离开的akka集群?,c#,f#,akka.net,akka-cluster,C#,F#,Akka.net,Akka Cluster,“重新启动参与者系统”对于akka集群意味着什么? 假设我有一个种子节点a和另一个节点B,执行以下代码: let clusterObjOnNodeB = Cluster.Get actorSystemB clusterObjOnNodeB.JoinSeedNodes <| ImmutableList.Create<Address>(seq[ Address.Parse @"path to node A" ]|>Seq.toArray) c
let clusterObjOnNodeB = Cluster.Get actorSystemB
clusterObjOnNodeB.JoinSeedNodes
<| ImmutableList.Create<Address>(seq[
Address.Parse @"path to node A"
]|>Seq.toArray)
clusterObjOnNodeB.Leave clusterObjOnNodeB.SelfAddress
让clustorbjonnodeb=Cluster.Get actorSystemB
clusterObjOnNodeB.JoinSeedNodes
序号:toArray)
clusterObjOnNodeB.离开clusterObjOnNodeB.SelfAddress
如何重新启动actorSystemB并重新加入群集而不处理actorSystemB?您可以将actor系统设置为其当前群集并重新加入群集(请记住,这是一个异步操作,不会立即发生,因此如果您想等待它,可以连接到事件) 然而,这并不等同于重新启动actor系统,这通常意味着重新启动它。原因是通常有很多内部状态由参与者系统本身保持,而不是简单地将自身重置为某个初始值。有时,个体行为者的状态可能会纠结在一起,形成一种导致问题的形式。在这种情况下,重新启动一个可能不相关的系统不会有帮助