【问题标题】:Akka: factors to consider when designing Actor organization structure?Akka:设计Actor组织结构时要考虑的因素?
【发布时间】:2015-06-02 16:32:02
【问题描述】:

我正在使用 Java 8 构建一个利用 TimerBasedThrottler 的 Web 服务客户端。设计 Actor 组织模型时应该考虑哪些因素?

我正在考虑;

  1. 复杂性
  2. 吞吐量
  3. 阻塞的可能性

我目前的设计使用以下组织结构;

-  RequestCoordinator (Master) singleton
-----   TimerBasedThrottler (Delegator) singleton
----------              RequestSender (Worker) - one actor created per web service request

传入请求通过强制执行特定 TPS 的节流器传递。节流器和协调器都是单例的。然后使用各个参与者发送每个请求。这些演员在完成工作后被传递给节流器并发出毒丸消息。

促进了 Akka Actor 使用路由器;这可以改善我上面概述的设计并使其更具容错性和性能吗?我的是一个简单的用例,但是我想探索如何使用 Akka 原则改进设计?

【问题讨论】:

    标签: java akka


    【解决方案1】:

    一般而言:鼓励分层结构并遵守错误内核模式,该模式本质上将风险较高的任务推到叶节点。

    其次,如果您还没有使用PoisonPill 消息,我建议您考虑使用context.system.scheduler.scheduleOnce。这可以大大简化实施(主要是旁白,不一定针对您帖子中的任何内容)。

    此外,PoisonPill 是正确的方法吗?如果这些是动态创建的短命演员,为什么不context.stop

    您是否阅读过throttlingbalancing workload across nodesthe work pulling pattern 上的文档?

    屏蔽

    不要!如果您真的必须这样做,请按照您的建议使用routers

    过早的优化?

    您如何测试当前的解决方案?它是否证明有问题或显示资源争用?小心这不是过早优化的情况:)

    当然,Akka documentation on best practices 非常适合阅读。

    【讨论】:

      猜你喜欢
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2012-12-31
      • 2011-06-20
      • 2011-02-25
      • 2012-08-09
      相关资源
      最近更新 更多