Akka集群:获取节点的状态信息

时间:2014-04-07 15:10:25

标签: cluster-computing akka akka-cluster

给定一个Akka ActorSystem对象,您如何知道群集中哪些其他节点处于活动状态,以及它们的状态是什么?

谢谢你,   - 丹尼尔

2 个答案:

答案 0 :(得分:5)

您应该查看Subscribe to Cluster Events下的文档。这应该解释订阅群集状态更改,此时您将收到显示群集当前状态的CurrentClusterState事件。从那时起,您将开始以ClusterEvent.MemberUpClusterEvent.MemberRemoved等其他事件的形式接收增量更改,以帮助您继续跟踪群集中节点的状态。

答案 1 :(得分:2)

一种方法是直接通过CurrentClusterState

获取Cluster
val cluster = Cluster(ActorSystem("MyActorSystem"))
val status = cluster.state.members

val nodes = status.collect {
        case m if m.status == MemberStatus.Up => m.address
      }