Scala Akka是另一个树枝上的演员

Scala Akka是另一个树枝上的演员,scala,akka,actor,Scala,Akka,Actor,我有几个演员的Akka申请。演员树如下所示: /user /one TARGET /two /three SOURCE 在源参与者中,我必须向目标参与者发送消息。然而,我不知道如何正确地做 每次从ActorSelection中解析ActorRef似乎都非常糟糕 有什么模式吗?我知道并使用的两种模式是: 在发送给源的原始消息中传递目标的ActorRef,以便源知道如何响应目标。当目标消息与消息不同时,这种方法很好地工

我有几个演员的Akka申请。演员树如下所示:

             /user
        /one         TARGET
     /two    /three
   SOURCE
在源参与者中,我必须向目标参与者发送消息。然而,我不知道如何正确地做

每次从ActorSelection中解析ActorRef似乎都非常糟糕


有什么模式吗?

我知道并使用的两种模式是:

  • 在发送给源的原始消息中传递目标的ActorRef,以便源知道如何响应目标。当目标消息与消息不同时,这种方法很好地工作,并使单元测试变得容易
  • 在ESB或服务定位器中从ActorSelection解析一次目标ActorRef,并将其传递给源,然后使用它。当actor系统中只有一个TARGET实例时,这种方法效果很好,但是它会使单元测试变得更加复杂

  • 为什么每次解决似乎都是个坏主意?相反,缓存引用是一个坏主意,因为ref可能会更改,例如,当重新创建actor时。@michaJlS好的,如果使用重新启动策略,ref不会更改。如何解决-这需要一些时间,我必须做每一个请求,这是一个坏主意,我想你能给我更多关于第二个选项的信息,因为它确实只有一个目标实例。