从 RemotingShutdownEvent 中检索节点地址

Retrieving node address from RemotingShutdownEvent

我们目前正在从 Akka 2.0.4 更新到 2.4.2(我知道,这是一个很大的飞跃,但没有人想过要逐步更新)。

无论如何,在旧的代码库中,我们的主节点连接到一些有时会失败的远程从节点("why" 仍有待调查)。当一个 slave 死亡时,master 收到一个 RemoteClientShutdown 事件,我们可以从中提取 getRemoteAddress 并相应地处理它(例如,通过指向失败节点地址的电子邮件通知管理员)。

在 2.4.2 版中,RemoteClientShutdown class 被 RemotingShutdownEvent 替换(至少我认为是这样),作为一个对象,它不携带任何特定信息,因为到事件的来源。

我查看了迁移指南和当前文档,但找不到有关如何解决此问题的信息。根据 Event Bus documentation,提取此类信息的唯一方法是在消息中提供 ("Please note that the EventBus does not preserve the sender of the published messages. If you need a reference to the original sender you have to provide it inside the message")。

我是否应该以某种方式覆盖远程系统关闭时发送的消息?或者有没有其他推荐的方法来解决它?我希望这个问题不是太新手,我对 Akka 还是很陌生。

好的,使用 DisassociatedEvent 解决了它,它实际上包含地址和其他有用的信息。原来我被 RemotingShutdownEvent 的名字误导了,它实际上是 "when the remoting subsystem has been shut down" (docs) 而不是当远程参与者被关闭时。