Akka 从另一个树枝访问演员

Akka acessing actor from another tree branch

我有几个演员的 Akka 应用程序。演员树看起来像这样:

             /user
        /one         TARGET
     /two    /three
   SOURCE

在源演员中,我必须向目标演员发送消息。但是,我不知道如何正确地做到这一点。

每次都从 ActorSelection 解析 ActorRef 似乎很糟糕。

有规律吗?

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

  1. 在发送给 SOURCE 的原始消息中传递 TARGET 的 ActorRef,这样 SOURCE 就知道要响应 TARGET。当 TARGET 与消息不同时,这很有效,并且使单元测试变得容易。
  2. 在 ESB 或服务定位器中从 ActorSelection 解析一次 TARGET ActorRef,然后将其传递给 SOURCE,并使用它。这在 actor 系统中只有一个 TARGET 实例时效果很好,但是它会使单元测试稍微复杂一些。