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