在第一条消息后打开恢复

时间:2017-11-22 15:26:25

标签: performance scala akka akka-persistence

我有一个持久的actor接收很多消息。 Fist消息是CREATE(案例类),下一个消息是UPDATE(案例类)。因此,如果它接收到CREATE,那么它不应该进入持久性以运行恢复,因为该actor的存储空。从我的角度来看,它的性能正在消失。

是否有可能不为特定输入消息(第一个是CREATE)调用恢复,请?

1 个答案:

答案 0 :(得分:0)

持久化actor始终必须访问数据库,因为没有其他方法可以知道它之前是否存在 - 它可能是在已停止的应用程序的先前实例中创建的,或者可能是在集群中的另一个节点。

通常,一个好的性能模式是在第一次命中后将actor保留在内存中,因为这样可以尽可能快地响应。最常见的方法是使用群集分片(您可以在此处的文档中详细了解:https://doc.akka.io/docs/akka/current/cluster-sharding.html?language=scala#cluster-sharding

我从来没有听说过任何人看到一个空洞的持久性演员的打击作为一个性能问题,我不确定是否有可能以一般方式解决这个问题,所以如果你有这样的问题,不知何故可以知道演员从来没有创造过,你不能用Akka Persistence做到这一点,但必须自己为此建立一个特殊的解决方案。