Akka集群成员查询

时间:2015-02-11 21:54:39

标签: akka akka-cluster akka-remote-actor

使用akka群集,是否可以查询群集中当前的成员?如果种子节点出现故障并最终恢复,是否可以找出其他成员正在将其用作种子节点?

1 个答案:

答案 0 :(得分:2)

您可以像这样获取当前集群成员的快照:

val system = ActorSystem(...) // whatever
val members = Cluster(system).state.members

但这可能已经过时了。如果需要跟踪集群成员资格,则应订阅集群事件。

val monitor = system.actorOf(Props[MyClusterMonitor])
Cluster(system).subscribe(monitor, classOf[ClusterEvent.ClusterDomainEvent])

随着状态发生变化,该演员将接收集群成员的更新。

除了被群集的其他成员列为种子之外,种子节点没有特殊的品质。一旦成员使用种子加入,它们就不再具有任何特殊关系,它们只是同一群集的成员。一个节点只能找出它认为是种子的节点(尽管你可以编写自己的代码来将数据传送到集群周围,但我个人认为没有用例)。