Akka 的文档是出了名的不明所以,浅尝辄止
在 2.0 开始阉割了从 actor 实例中获取 mailbox 状态的 api.
原因在这里
大抵如下:
域名上的 letitcrash 现在都没人提了.
就监控指标而言这 blog 写的并不让人信服,不然为什么商业支持的版本还是具备 mailbox 监控功能呢?
官方文档&网络上搜索到的大部分都是.withDispatcher().withMailbox
的形式的.
下面说下使用 Extension 机制,实现以下这块内容.
api 在这三四年间也是有了变化. 自己做 ActomicInteger 或者 LongAdder 如今好像不需要了.
继承默认实现,不做更多的修改(虽然默认的无界 queue 也是只有出列入列的功能而已.
public class TtMailbox extends akka.dispatch.UnboundedMailbox.MessageQueue
使用容器维护 actor 与 mailbox,以便外部随时查询
我们在实际实现里利用了一下新增的 api numberOfMessages