2

在准备未来的应用程序设计时,我已经开始对 CQRS 风格的应用程序,尤其是Ncqrs进行一些调查。

虽然大多数概念都很清楚,但我对快照的概念有点困惑。

我可以理解为什么从对象的事件中重建对象可能会耗费大量资源,但是由于非规范化器将使用实体的最新状态(或者实际上是视图所需的最新值)来构建读取模型,所以为什么要打扰这个概念从快照重建对象?

我是否认为这种情况只是偶尔发生和按需发生,主要是在升级版本或调试之后?

如果不是,那么拍摄快照的好情况是什么?

4

2 回答 2

2

我不得不承认我不是事件溯源的大用户(或者至少,我没有充分利用它),但是在重建聚合时,快照有助于提高系统的性能。无需重建从时间 0 开始的所有事件,您只需重建回最后一个快照。因此,如果您的系统中有大量事件并且您的事件源重建您的聚合开始影响您的命令端的性能,您可以考虑使用快照。

查看他去年左右教授的 Greg Young DDD/CQRS 课程的笔记;它可能会给你一些关于他从哪里来的快照的想法。

希望这可以帮助。祝你好运!

于 2011-07-31T12:59:17.883 回答
0

当您的聚合根有大量事件(可能超过 1000 个?)时,快照很有用。但需要考虑的是,在大多数情况下,您的聚合是短暂的,因此事件数量很少;在这种情况下,快照可以被视为早期优化;这不是一件好事。

于 2011-08-01T21:35:28.417 回答