Architecture Decision Record

Active theme: Light

← 决策记录例子

架构决策记录:选数据库技术

状态

已接受

背景

阿拉辣设计一个新应用,需要用可扩展、高性能个办法存储搭检索数据。阿拉识别出三种常用个数据库技术:关系型数据库、文档数据库搭事件数据库。

关系型数据库拿数据存辣模式固定个表里,并且强制执行严格个数据完整性约束。伊拉适合需要复杂数据关系搭事务个应用。例子包括 MySQL、PostgreSQL 搭 Oracle。

文档数据库拿数据存辣类似 JSON 个文档里,而且无模式。伊拉非常适合需要灵活数据模型搭水平扩展个应用。例子包括 MongoDB、Couchbase 搭 Amazon DynamoDB。

事件数据库拿数据存成一系列事件,记录对数据个每个更改。伊拉适合需要审计、事件溯源搭复杂数据处理个应用。例子包括 Apache Kafka、Apache Pulsar 搭 AWS Kinesis。 决策

仔细评估了阿拉应用个需求搭限制之后,阿拉决定用文档数据库。

理据

阿拉选文档数据库,因为:

  1. 阿拉个应用需要一个可以随辰光演进个灵活数据模型。文档数据库让阿拉可以用无模式个格式存储数据,也就是阿拉可以加新字段,或者更改现成文档个结构,而勿需要修改数据库模式。

  2. 阿拉个应用需要水平扩展,来处理大量个数据搭流量。文档数据库内置支持分片搭复制,让阿拉可以拿数据分布到多台服务器上,处理高读写吞吐量。

  3. 阿拉个应用需要快速、高效个数据检索。文档数据库提供强大个索引搭查询能力,让阿拉可以快速、高效地检索数据。

  4. 阿拉个应用勿需要复杂个事务或者数据关系。虽然关系型数据库擅长强制执行数据完整性约束、处理复杂事务,勿过阿拉个应用呒没迭种需要。文档数据库可以为阿拉个用例提供足够个一致性搭持久性保证。

后果

选了文档数据库,阿拉需要投入辰光学习搭了解阿拉选用个具体技术。另外,阿拉需要确保应用个数据模型搭文档数据库个数据模型配合得好,才能最大化性能搭可扩展性。

勿过,阿拉相信用文档数据库个好处超过成本,而且伊最适合阿拉应用个需求搭限制。