Akka注册基路由

Akka注册基路由,akka,Akka,我有以下要求: 我想要一个路由器或参与者,将消息转发到0-*参与者(目的地) 目的地通过注册和注销消息(如侦听器)在路由器上注册和注销自己 我的想法是,在“RoutingActor”中有一张地图,其中包含目的地的参考。但如果我真的这样实现它,我就不能使用“AkkaSystem.actorOf(RoutingActor.class)”,因为我可能会得到不同的参与者,对吗 那么,这里的正确解决方案是什么?我想构建一个路由器/调度器,它可以在运行时从这些目的地参与者更改消息目的地 谢谢首先创建路由参与

我有以下要求: 我想要一个路由器或参与者,将消息转发到0-*参与者(目的地)

目的地通过注册和注销消息(如侦听器)在路由器上注册和注销自己

我的想法是,在“RoutingActor”中有一张地图,其中包含目的地的参考。但如果我真的这样实现它,我就不能使用“AkkaSystem.actorOf(RoutingActor.class)”,因为我可能会得到不同的参与者,对吗

那么,这里的正确解决方案是什么?我想构建一个路由器/调度器,它可以在运行时从这些目的地参与者更改消息目的地


谢谢

首先创建路由参与者的单个实例,给它一个名称,以便以后可以在其他地方再次查找它。然后在以后和其他地方,使用
actorFor
而不是
actorOf

val router = system.actorOf(Props[RoutingActor], "myrouter")
然后在其他地方:

val router = system.actorFor("/user/myrouter")
router ! msg
或者,如果您使用的是Akka 2.2:

val router = system.actorSelection("/user/myrouter")
router ! msg

使用actorFor/actorSelection按路径查找路由器参与者


用于帮助您实现路由器参与者功能。

感谢您的回答,我现在将使用Eventbus机制。这似乎是适合我的需求的正确模式。