事件存储与数据库服务模式解析
1. 事件存储概述
事件存储是一种有序、易于查询且持久的长期记录源,用于表示针对数据存储中实体发生的事件。在实现数据存储时,事件记录包含聚合 ID、时间戳、事件类型标志以及表示该时间点状态的数据。应用程序将事件记录持久化到数据存储中,该数据存储具有允许添加和检索实体或聚合事件的 API 或接口。事件存储还可像消息代理一样,允许其他服务订阅发布的事件。
2. 事件存储策略
- 事件存储要求 :事件应是不可变的,数据存储应为追加式。
-
存储方式选择 :
- 关系型数据库 :标准关系型数据库模型不太适合作为事件存储,因为后续审计、重放或分析时,检索事件记录效率不高。若使用关系型数据存储,可创建基于事件数据的非规范化表。也可创建一个包含以下列的单一日志表:
| 列名 | 数据类型 |
| ---- | ---- |
| Id | Int |
| AggregateId | Guid |
| Timestamp | DateTime |
| EventType | Varchar |
| Data | Varchar |
| VersionNumber | Int |
可在
AggregateId和VersionNumber列上添加唯一索引,以加快查询速度并确保值组合不重复。使用 Post - 关系型数据库 :标准关系型数据库模型不太适合作为事件存储,因为后续审计、重放或分析时,检索事件记录效率不高。若使用关系型数据存储,可创建基于事件数据的非规范化表。也可创建一个包含以下列的单一日志表:
超级会员免费看
订阅专栏 解锁全文

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



