我正在创建代表物理设备及其状态的参与者。当设备上线时,我通过向参与者的路径发送和识别消息来“按需”创建它们,然后如果它不存在,我会创建一个。这些设备可能有数百万台。
我担心的是,随着参与者数量的增加,识别查找的性能会受到影响。这是一个合理的担忧吗?
我正在考虑使用路由器策略来分段参与者,但后来我发现使用通配符搜索路由器的路径会产生来自每个路由器的ActorIdentities。我认为 ConsolidatedHashingRouter 适合这种情况,但在我陷入困境之前,我只想确保我没有过早优化。
最佳答案
创建 Actor 的实体只是其父级(没有其他方法),这意味着父 Actor 根本不需要使用 Identify
,只需检查 context.child (名称).isDefined
。这是非常有效的,尽管如果您确实拥有大量设备,您可能希望将设备分片给多个 parent 。
关于 Akka Actor : Path lookup efficiency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131343/