Files
nexus/wiki/concepts/Multi-Database-Architecture.md
2026-04-24 00:03:01 +08:00

90 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Multi-Database Architecture"
type: concept
tags:
- AWS
- Database
- Architecture
- Microservices
sources:
- ctp-topic-51-architecting-with-aws-purpose-built-databases
last_updated: 2026-04-23
---
## Definition
多数据库混合架构Multi-Database Architecture是指在单一应用中根据各部分的数据特征选用不同类型专用数据库的架构模式以实现最优的数据层性能。
## Core Principle
每个数据模型应使用最适合它的数据库类型:
- **关系型数据** → 关系型数据库Aurora / RDS
- **高频读取** → 内存缓存ElastiCache
- **无结构键值** → 键值数据库( DynamoDB
- **高度互连** → 图数据库Neptune
## Real-World Case Studies
### Duolingo 案例(来源:[[ctp-topic-51-purpose-built-databases]]
| 数据类型 | 数据库 | 选型原因 |
|---------|--------|---------|
| 个性化学习进度 | DynamoDB | 高写入、低延迟、弹性扩展 |
| 高频词/短语 | ElastiCache | 微秒级读取缓存 |
| 事务数据(购买、订阅)| Aurora | ACID 强一致性、复杂查询 |
### Netflix 案例(来源:[[ctp-topic-51-purpose-built-databases]]
| 数据类型 | 数据库 | 选型原因 |
|---------|--------|---------|
| JSON 文档(用户数据、偏好)| DynamoDB | 高弹性、低延迟、JSON 原生支持 |
### Peloton 案例(来源:[[ctp-topic-51-purpose-built-databases]]
| 数据类型 | 数据库 | 选型原因 |
|---------|--------|---------|
| 实时健身反馈 | ElastiCache Redis | 微秒级响应、即时用户体验 |
## Architecture Patterns
### Cache-Aside Pattern旁路缓存
```
应用 → DynamoDB/RDS主数据库
↘ ElastiCache缓存层
```
- 读取:先查缓存,未命中则查数据库并回填缓存
- 写入:先写数据库,再失效/更新缓存
### CQRS Pattern命令查询职责分离
```
写入 → DynamoDB优化写入
读取 → DynamoDB + ElastiCache优化读取
↘ Aurora复杂查询读取
```
### Event-Driven Data Sync
```
DynamoDB Streams → Lambda → Aurora
→ Lambda → Elasticsearch搜索
→ Lambda → S3归档
```
## Trade-offs
| 优势 | 挑战 |
|------|------|
| 最优性能:每个场景用最佳数据库 | 复杂度:多数据库运维成本 |
| 弹性扩展:各层独立扩展 | 一致性:跨数据库事务管理 |
| 成本优化:按需选择规格 | 学习曲线:团队需掌握多种数据库 |
| 容错隔离:单库故障不扩散 | 数据迁移:服务间数据同步 |
## Aliases
- Polyglot Persistence
- 多数据库混合架构
- 数据库混合部署
- Database Polyglot
- Mixed Database Architecture
## Related Concepts
- [[Purpose-Built-Databases]]:多数据库架构的基础——专用数据库选型原则
- [[Amazon-DynamoDB]]:多数据库架构中的键值/文档数据存储
- [[Amazon-ElastiCache]]:多数据库架构中的缓存层组件
- [[Amazon-Aurora]]:多数据库架构中的关系型事务数据存储
- [[Amazon-Neptune]]:多数据库架构中的图数据存储
- [[Amazon-Timestream]]:多数据库架构中的时序数据存储
- [[DBA-Role-Evolution]]:云时代 DBA 需要掌握多数据库架构设计能力