Akka 的 EventBus 可以与远程参与者一起使用吗?
据我所知,它本身并不支持这一点。有人可以确认吗?
看起来可以编写一些提供类似功能的 Actor。例如,启动订阅远程服务器上的 EventBus 的远程 Actor,并将消息发送回本地 Actor 以在本地 EventBus 上重新发布。但是,如果它已经被支持,那么写这个是没有意义的!
谢谢
Akka 的 EventBus 可以与远程参与者一起使用吗?
据我所知,它本身并不支持这一点。有人可以确认吗?
看起来可以编写一些提供类似功能的 Actor。例如,启动订阅远程服务器上的 EventBus 的远程 Actor,并将消息发送回本地 Actor 以在本地 EventBus 上重新发布。但是,如果它已经被支持,那么写这个是没有意义的!
谢谢
EventBus 本身是本地的,这意味着事件不会自动传输到其他系统上的 EventBus,但您可以订阅任何您想要的 ActorRef,包括远程的。您只需要在生成事件的节点上有一个参与者:
case class Subscribe(clazz: Class[_])
system.actorOf(Props(new Actor {
def receive = {
case Subscribe(c) =>
context.system.eventStream.subscribe(sender, c)
}
}), "eventer")
然后你可以从远程主机上查找那个并让你自己订阅。