java - 如何检测消息过多? [ Akka Actor ]

标签 java scala akka actor

任何 Actor 都可能收到太多的消息。如何发现这样的瓶颈?

如果发生这种情况,CPU 使用情况会如何?是否总是至少有 1 个核心处于 100% 使用率?

在 Akka 1.x 中,我可以检查消息队列的长度,但在 2.x 中不可用。现在该如何处理?

最佳答案

actor 中的消息过多不会导致任何 cpu 问题 - 它们最终会消耗大量内存,具体取决于消息和使用的策略。看看这些策略:http://doc.akka.io/docs/akka/2.4.16/scala/mailboxes.html默认是无界邮箱 - 因此系统会耗尽所有内存...(在这种情况下考虑使用背压 - 请参阅 akka 流)

Kamon 允许您查看参与者指标(邮箱大小等)。 这配置起来非常简单(但需要aspectj) http://kamon.io/integrations/akka/actor-router-and-dispatcher-metrics/

关于java - 如何检测消息过多? [ Akka Actor ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41244335/

相关文章:

scala - 什么是 Akka Streams 中的 Flow#join

java - 将 SSL 连接与 Akka 结合使用 - 无法使配置正常工作

java - 使用 Class<?> 变量创建通用对象

java - 如何仅修改 HashMap 的现有键而不修改其对?

performance - Scala 性能问题

java - scala 和 spring data neo4j - 没有为字段配置 FieldAccessor

scala - 避免 Scala 中的循环

java - jdom2 xPathExpression拉节点失败

java - 循环访问 java BigInteger 中的各个位

scala - Akka 分布式发布/订阅和命名主题的数量