2017-01-20 31 views
2

我想在其他節點無法訪問時更改羣集節點的行爲。這就是爲什麼當其他成員無法到達時我想要下注的原因。Akka集羣:爲什麼當成員被標​​記爲不可訪問時,我不會收到UnreachableMember事件?

當成員是無法訪問,我可以看到它在日誌中:

[warn] a.c.ClusterCoreDaemon - Cluster Node [akka.tcp://[email protected]:2554] - Marking node(s) as UNREACHABLE [Member(address = akka.tcp://[email protected]:40550, status = Up)]. 

但在演員監控羣集事件(工作,因爲我可以看到,當有成員加入或正在運行),我不這樣做不會收到這個事件:

case UnreachableMember(member) => 
    log.info("Member unreachable: {}", member.address) 

我做錯了什麼,或者我必須在配置中添加一些東西嗎?

回答

1

我沒有收到此事件,因爲我沒有很好地訂閱集羣事件。

我這樣做:

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

,而不是這樣的:

cluster.subscribe(
    self, 
    InitialStateAsEvents, 
    classOf[MemberEvent], 
    classOf[UnreachableMember]) 

所以我不得不添加classOf [UnreachableMember]現在我收到了無法訪問羣集事件。

相關問題