9

Akka 的 EventBus 可以与远程参与者一起使用吗?

据我所知,它本身并不支持这一点。有人可以确认吗?

看起来可以编写一些提供类似功能的 Actor。例如,启动订阅远程服务器上的 EventBus 的远程 Actor,并将消息发送回本地 Actor 以在本地 EventBus 上重新发布。但是,如果它已经被支持,那么写这个是没有意义的!

谢谢

4

1 回答 1

11

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")

然后你可以从远程主机上查找那个并让你自己订阅。

于 2012-11-22T07:02:42.017 回答