事件物化器:原理、应用与故障处理
在构建业务应用系统时,事件物化器是一个关键组件,它在维护系统状态、处理数据和与外部系统交互等方面发挥着重要作用。下面将详细介绍事件物化器的相关知识。
1. 一致性保障
事件物化器负责维护系统的有状态视图。为了确保系统在重启后能正确恢复处理状态,需要存储关于最后一个物化事件的元数据,即检查点(checkpoints)。检查点包含最近物化事件的序列号,在事件物化时会事务性地更新。系统重启时,会依据这个序列号确定从何处继续消费事件日志。
检查点还能为突变操作提供写后读一致性。成功的突变操作会返回最终事件的序列号,这个序列号可作为 GraphQL 查询的可选参数,指示事件物化器至少要物化该事件。不过,这种一致性仅适用于发起突变操作的调用者。如果不同调用者的突变和查询操作相继发生,查询操作不一定能立即看到突变结果,因为突变可能还在命令处理器和事件物化器中处理。若两个调用者协同工作,他们需要共享突变者的可见版本信息。
2. 多数据源处理
事件物化器的主要输入通常是系统的事件日志,但在计算派生数据时,有时需要使用其他系统的数据。事件物化器可以泛化为从任何消息日志中消费数据。
当事件物化器只有一个事件日志源时,其处理流程如下:
1. 从事件日志中获取下一个事件。
2. 调用物化函数,使用该事件更新有状态视图。
3. 用事件的序列号更新检查点。
4. 回到步骤 1。
为了支持多数据源,需要一种机制来确定事件来自哪个事件日志,以便为每个源维护检查点。所有消费的事件日志应合并,每个事件在进入事件物化器之前应包含其来源分区信息,检查点组件会利用这些
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



