Кластер Akka: почему я не получаю событие Reachable?

У меня есть два узла в кластере Akka.

Я подписываюсь на все ClusterDomainEvent кластера с помощью:

cluster.subscribe(
    self,
    InitialStateAsEvents,
    classOf[ClusterDomainEvent])

Когда один из двух узлов не работает, я получаю событие Unreachable, и каждые несколько секунд я начинаю получать некоторые журналы, которые предупреждают меня следующим образом:

Association with remote system [akka.tcp://[email protected]:2554] has failed

Когда неработающий узел возвращается, журналы останавливаются, поэтому обнаруживается, что узел снова доступен, но я все еще не получаю событие ReachableMember.

Что мне не хватает? Что я должен сделать, чтобы получить это кластерное событие?


person Simon    schedule 26.01.2017    source источник


Ответы (1)


Способ сделать это — подписаться на события кластера с помощью classOf[ReachabilityEvent]

So

cluster.subscribe(
  self,
  InitialStateAsEvents,
  classOf[MemberEvent],
  classOf[ReachabilityEvent])
person Simon    schedule 08.02.2017
comment
Странно, из кода Akka я вижу, что ClusterDomainEvent включает ReachabilityEvent (sealed trait ReachabilityEvent extends ClusterDomainEvent). Это не должно было иметь значения. - person Valentina; 22.08.2019