从 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) 而不是当远程参与者被关闭时。
我们目前正在从 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) 而不是当远程参与者被关闭时。