【问题标题】:Should supervised actors in Akka receive messages directly or via its supervisor?Akka 中的受监督参与者应该直接接收消息还是通过其监督者接收消息?
【发布时间】:2016-05-08 12:49:19
【问题描述】:

我最近看了一个great video by Riccardo Terrell about Akka.NET and F#,但我要问的问题通常与 Akka 有关。我对他讨论错误的主管和监督策略的部分感到困惑。在他的示例中,客户端向主管发送消息,主管通过调用 worker.Tell(msg,mailbox.Sender()) 将消息转发给工作角色。我想知道这种做法有多普遍。在我们的系统中,有几个地方客户首先要求主管获取工作人员实例,然后直接对工作人员进行 Tell 调用。我对使用 Ask 并不满意,但在我们的例子中,我们需要工作人员亲和力,即来自同一个客户端的消息可能需要路由到同一个工作人员,因此为客户端提供工作人员实例可以简化这一点。但同样,Ask 很糟糕。因此,对于受监督的参与者,他们应该通过监督者接收消息(以避免询问)还是“视情况而定”?

【问题讨论】:

    标签: akka akka.net actor-model


    【解决方案1】:

    一个解决方案是在使用简单的hasing函数时使用hashing pool,这样你就可以消除向asker发回引用。

    new ConsistentHashingPool(5).WithHashMapping(o =>
    {
       if (o is IHasCustomKey)
           return ((IHasCustomKey)o).Key;
    
       return null;
    });
    

    欢迎任何 cmets!

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多