当其他节点无法访问时,我想更改群集节点的行为。这就是为什么我想在其他成员无法访问时下注的原因。
当成员无法访问时,我可以在日志中看到它:
[warn] a.c.ClusterCoreDaemon - Cluster Node [akka.tcp://application@127.0.0.1:2554] - Marking node(s) as UNREACHABLE [Member(address = akka.tcp://application@127.0.0.1:40550, status = Up)].
但是在监控集群事件的演员中(因为我可以看到会员加入或正在加入时的工作),我不会通过以下方式接收此事件:
case UnreachableMember(member) =>
log.info("Member unreachable: {}", member.address)
我做错了什么或者我必须在配置中添加一些内容吗?
答案 0 :(得分:1)
我没有收到此活动,因为我没有很好地订阅群集活动。
我这样做了:
cluster.subscribe(
self,
InitialStateAsEvents,
classOf[MemberEvent])
而不是:
cluster.subscribe(
self,
InitialStateAsEvents,
classOf[MemberEvent],
classOf[UnreachableMember])
所以我不得不添加classOf [UnreachableMember],现在我收到了无法到达的群集事件。