Akka注册基地路由

时间:2013-07-11 10:59:32

标签: akka

我有以下要求: 我希望有一个路由器或演员将消息转发给0- *演员(目的地)。

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

我的想法是,在“RoutingActor”中有一个Map,它包含目的地的引用。但是如果我以这种方式实现它,我就不能使用“AkkaSystem.actorOf(RoutingActor.class)”,因为我可能会得到不同的演员,对吗?

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

由于

2 个答案:

答案 0 :(得分:1)

首先创建路由actor的单个实例,为其指定一个名称,以便以后可以在其他地方再次查找。然后在其他地方使用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

答案 1 :(得分:1)

使用actorFor / actorSelection按路径查找路由器actor。

使用Listeners来帮助您实现路由器角色功能。