任何演员都可以获得太多消息。如何发现这样的瓶颈?
如果发生这种情况,那么CPU的使用情况会怎样?在100%使用情况下是否总会至少有1个核心?
在Akka 1.x中我可以检查消息队列的长度,但在2.x中它是不可用的。现在该怎么处理?
答案 0 :(得分:4)
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/