当你使用actor时,你可能要注意有些actor可能会积累非常长的事件日志,并经历较长的恢复时间。正确的方法是分裂成一组较短的actor来大幅度减少恢复时间。
持久actor可以通过调用
saveSnapshot方法来保存内部状态的快照。如果保存快照成功,持久化actor将接收到
SaveSnapshotSuccess消息,否则是
SaveSnapshotFailure消息
如果没有指定,他们默认为
SnapshotSelectionCriteria.Latest (最新的快照)。若要禁用基于快照的恢复,应用程序应使用
SnapshotSelectionCriteria.None。如果已保存的快照没有匹配指定的
SnapshotSelectionCriteria,恢复时将重播所有日志消息。
快照删除
持久化actor可以通过调用
deleteSnapshot方法来删除单个快照,该方法使用快照的时间戳。
如果大量删除一个范围内的与
SnapshotSelectionCriteria匹配的快照,持久化actor可以使用
deleteSnapshots
快照状态处理
保存和删除快照也可以有成功或失败,此信息通过如下表所示的状态消息反馈给持久actor
https://doc.akka.io/docs/akka/current/distributed-data.html#serialization