【发布时间】:2015-04-12 11:15:36
【问题描述】:
使用akka集群,是否可以查询集群中当前有哪些成员?如果种子节点宕机了,最后又恢复了,它能否找出其他成员正在使用它作为种子节点吗?
【问题讨论】:
标签: akka akka-cluster akka-remote-actor
使用akka集群,是否可以查询集群中当前有哪些成员?如果种子节点宕机了,最后又恢复了,它能否找出其他成员正在使用它作为种子节点吗?
【问题讨论】:
标签: akka akka-cluster akka-remote-actor
您可以像这样获取当前集群成员的快照:
val system = ActorSystem(...) // whatever
val members = Cluster(system).state.members
但这可能已经过时了。如果您需要跟踪集群成员资格,您应该订阅集群事件。
val monitor = system.actorOf(Props[MyClusterMonitor])
Cluster(system).subscribe(monitor, classOf[ClusterEvent.ClusterDomainEvent])
然后,该参与者将在集群成员状态发生变化时收到有关其成员的更新。
除了被集群的其他成员列为种子之外,种子节点没有任何特殊性质。一旦成员使用种子加入,他们不再有任何特殊关系,他们只是同一个集群的成员。一个节点只能找出它认为是种子的节点(尽管您可以编写自己的代码来在集群中传送这些数据,我个人想不出一个用例)。
【讨论】: