给定一个Akka ActorSystem对象,您如何知道群集中哪些其他节点处于活动状态,以及它们的状态是什么?
谢谢你, - 丹尼尔
答案 0 :(得分:5)
您应该查看Subscribe to Cluster Events下的文档。这应该解释订阅群集状态更改,此时您将收到显示群集当前状态的CurrentClusterState
事件。从那时起,您将开始以ClusterEvent.MemberUp
和ClusterEvent.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
}