代码之家  ›  专栏  ›  技术社区  ›  Silk0vsky

如何使用Axon事件源整个数据存储?

  •  3
  • Silk0vsky  · 技术社区  · 7 年前

    我正在尝试基于CQR原则设计架构。 其中一个需求是能够根据现有的事件日志为查询子系统引入新的预测。为此,我需要能够遍历存储在数据存储中的所有事件记录。轴突有可能吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Steven    7 年前

    这在轴突中是绝对可能的。 在这种情况下要查找的关键字是 TrackingEventProcessor .

    这个 EventProcessors 在Axon中,负责处理将事件传递给您正在编写的事件处理程序的技术方面。 这个 跟踪事件处理器 通过从 EventStore . 由于您的应用程序可以启动/停止/暂停等,因此 跟踪事件处理器 也应该是可停止的。因此,尽管,你希望 跟踪事件处理器 从上次停止的地方重新开始。

    因此它有 保持跟踪 其中涉及处理来自事件流的事件。“保持跟踪”是通过保持 TrackingToken 其中包含索引(并取决于 跟踪令牌 最后一个事件的其他信息)。

    可以在任何时间点针对事件流设置此令牌。 因此,它将允许您为它更新的给定查询模型启动重播/重置。或者,如果每次启动时都需要源代码查询模型,则只需保留 跟踪令牌 仅在内存中。这将确保在启动时,它将从一开始就开始读取事件。

    有关Axon中事件处理器的更多信息,我建议 reference guide .

    边注: 尽管如此,我还是想指出,活动采购中最困难的部分 取决于应用程序的查询端。这部分总是从整个事件流中得到补充。然而,事件源命令模型完全不同。为此,Axon提供了 EventSourcingRepository 以存储您的聚合。

    推荐文章