【问题标题】:Akka acessing actor from another tree branchAkka 从另一个树枝访问演员
【发布时间】:2017-02-12 11:30:37
【问题描述】:

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

             /user
        /one         TARGET
     /two    /three
   SOURCE

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

每次都从 ActorSelection 中解析 A​​ctorRef 似乎很糟糕。

有什么规律吗?

【问题讨论】:

  • 为什么每次都解决似乎是个坏主意?相反,缓存引用是一个坏主意,因为引用可以改变,例如演员被重新创建。
  • @michaJlS 好吧,如果使用重新启动策略,则不会更改 ref。怎么解决 - 这需要一些时间,我必须根据每个请求都做,这对我来说是个坏主意

标签: scala akka actor


【解决方案1】:

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

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

【讨论】:

  • 能否请您提供有关第二个选项的更多信息,因为它确实只有一个 TARGET 实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多