gpt4 book ai didi

java - 定义 Akka Actor Count 的最佳实践是什么

转载 作者:行者123 更新时间:2023-12-01 09:30:14 27 4
gpt4 key购买 nike

我试图弄清楚 Akka 是如何工作的以及使用 Actor Model 的最佳实践是什么。

我有几个与之相关的问题。

问题:

  1. 在为下面提到的场景配置 Actor 和线程总数时,我们应该牢记哪些决定因素?

    场景:

    a.只有 tell 在 actor 上被调用(即发即忘)。

    b.正在调用 ask(Futures 和 Promise)。

  2. 使用路由器(例如 RoundRobinRouter(X))相对于手动创建 Actor 的优点/缺点是什么。

  3. 调度程序如何协调 MailBox、Actor 和线程来进行消息处理。

最佳答案

Futures 和 Promise 可以独立于 Actor 和路由器使用。另外,下面的 Alvin Alexander 链接在将 Futures/Promises 与 Threads(与 Java 中的相同)进行比较方面做得非常出色。

您应该使用的路由类型取决于您的特定应用程序需求。一般来说,您应该选择一种能够反射(reflect)您要解决的实际问题的路由技术。例如。它更像是邮箱或总线/广播,还是循环赛。

如果您不使用 Akka 提供的内置路由器,那么您可能会想编写自己的路由器。然而,你可能很难改进 Akka 库:在下面的 akka.io 文档中,他们解释了一些路由工作由库委托(delegate)给参与者,以处理路由器是单一的事实:线程。

如果您有几 GB 的 RAM,典型的计算机将允许您启动数千个线程或参与者。然而,在任何时刻,实际运行的线程数都不会超过 CPU 中的内核数。

以下一些文章可能会帮助您决定使用哪些技术以及合适的线程和参与者数量:

http://doc.akka.io/docs/akka/2.4.10/scala/routing.html

Akka messaging mechanisms by example

How many actors can be launched in scala?

http://alvinalexander.com/scala/differences-java-thread-vs-scala-future

How many threads can ran on a CPU at a time

关于java - 定义 Akka Actor Count 的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39492814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com