为永久终止的参与者清理EntityStoppedManifest日志项的最佳实践



在我们的actor系统中,使用分片和持久性,我们的一个ReceivePersistentActor实现的具体实例在终止(钝化(后不会被重新使用,因为它们表示由为每个新会话生成的GUID标识的客户端会话。

当会话结束时,ReceivePersistentActor负责清理它自己的持久性数据,并将调用DeleteSnapshotsDeleteMessages,这两个操作很好。处理完这些调用后,actor将Context.Parent.Tell(new Passivate(PoisonPill.Instance));终止。之后,事件日志仍将包含一个EntityStoppedManifest条目("CD"(,因为它是通过Passivate消息生成的。随着时间的推移,这将导致事件日志中保留许多"CD"条目。

是否有建议的方法来清理此类残留物
也许是一个单独的清洁工演员手动清理这些条目
或者这甚至是我们这边的设计缺陷吗?

看起来我来这里太匆忙了,因为到目前为止,这些事件已经被自动清理了。

最初,这些事件积累如此之多的问题可能是,这些事件是在参与者恢复期间而不是在正常操作期间生成的。但这只是一个假设。

最新更新