Запрос члена кластера Akka

Можно ли с помощью кластера akka запросить, какие члены в данный момент находятся в кластере? Если начальный узел выходит из строя и в конечном итоге возвращается, может ли он узнать, какие другие члены используют его в качестве начального узла?

1 ответ

Вы можете получить снимок текущего элемента кластера, как это:

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

Но это может быть устаревшим. Если вам нужно отслеживать членство в кластере, вы должны подписаться на события кластера.

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

Этот субъект будет получать обновления для членов кластера по мере изменения их состояния.

Узлы семян не имеют особых качеств, кроме того, что они перечислены в качестве семян другими членами кластера. После того, как участник использовал семя для присоединения, у него больше нет особых отношений, они просто являются членами одного кластера. Узел может только узнать, какие узлы он рассматривает как начальные (хотя вы могли бы написать свой собственный код для перемещения этих данных по кластеру, лично я не могу придумать вариант использования для этого).

Другие вопросы по тегам