【问题标题】:Akka Spring integration does not set actor's nameAkka Spring 集成没有设置演员的名字
【发布时间】:2016-08-21 22:08:47
【问题描述】:

我正在使用Akka Spring integration 创建我的 Akka 演员。问题是它似乎创建了不推荐的未命名的演员。我的 Akka 配置是

AkkaDemo{
akka.actor.deployment  {

   /rootActor {
        nr-of-instances = 5   
    }

}

当我将我的演员创建​​为

ActorRef rootActor = system.actorOf(SpringExtProvider.get(system).create("rootActor").withRouter(new RoundRobinPool(5)), "root");

演员的路径是

akka://AkkaDemo/user/root/$a

这意味着“rootActor”名称被忽略,Akka 创建了一个名称为 $a 的 actor。我想知道是否有一种方法可以通过 Spring 集成来创建命名演员?

【问题讨论】:

  • 看来问题出在劫持演员姓名的路由器上。如果我跳过路由器只调用 ActorRef rootActor = system.actorOf(SpringExtProvider.get(system).create("rootActor"), "root");路径将是 akka://AkkaDemo/user/root。我不确定是否可以同时指定路由器和参与者名称

标签: java spring akka


【解决方案1】:

原因是路由器:如果一个actor是使用.withRouter(...)创建的,那么路由器actor接收到actor的名字并且actor的实例被Akka赋予$..名字

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 1970-01-01
    • 2013-11-22
    • 2015-05-06
    • 2015-03-27
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多