[英]Akka: factors to consider when designing Actor organization structure?
我正在使用Java 8构建一个利用TimerBasedThrottler
的Web服务客户端。 设计Actor组织模型时应考虑哪些因素?
我目前正在考虑;
我当前的设计使用以下组织结构;
- RequestCoordinator (Master) singleton
----- TimerBasedThrottler (Delegator) singleton
---------- RequestSender (Worker) - one actor created per web service request
传入的请求通过执行特定TPS的调节器传递。 节流阀和协调器都是单例。 然后使用各个参与者发送每个请求。 这些演员在完成工作后会传递给节流阀并发出毒丸消息。
Akka Actor鼓励使用路由器。 这样可以改善我上面概述的设计并使其更具容错性和性能吗? 我的是一个简单的用例,但是我想探索如何使用Akka原则改进设计?
一般而言:鼓励分层结构并观察错误内核模式,这从本质上将高风险的任务推向叶节点。
其次,我建议考虑对PoisonPill
消息使用context.system.scheduler.scheduleOnce
。 这可以大大简化实现(大多数情况下,不一定针对您帖子中的任何内容)。
此外, PoisonPill
是正确的方法吗? 如果这些是短暂创建的演员,为什么不使用context.stop
?
您是否已阅读有关节流以及平衡节点之间的工作量或工作拉动模式的文档?
封锁
别! 如果确实需要,请按照建议使用路由器 。
过早的优化?
您如何测试当前的解决方案? 是证明有问题还是显示资源争用? 小心,这不是过早优化的情况:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.