3.1 KiB
3.1 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | |||||
|---|---|---|---|---|---|---|---|---|---|
| Multi-Database Architecture | concept |
|
|
2026-04-28 |
Overview
多数据库混合架构(Polyglot Persistence)是一种架构模式:在同一个应用系统中,根据不同数据类型和访问模式,选择多个专用数据库组合使用,而非依赖单一数据库。
Aliases
- Polyglot Persistence
- Multi-Database Architecture
- Polyglot Database Architecture
Core Pattern
为正确的工作选择正确的工具:
- 事务数据 → 关系型数据库(Aurora/RDS)
- 高频缓存 → 内存数据库(ElastiCache Redis)
- 灵活文档 → 文档数据库(DocumentDB)
- 图关系 → 图数据库(Neptune)
- 时序数据 → 时序数据库(Timestream)
Real-World Case Study: Duolingo
Duolingo 的多数据库架构:
┌─────────────────────────────────────────────────┐
│ Duolingo App │
└──────────────────────┬────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌──────────┐ ┌───────────┐ ┌──────────┐
│DynamoDB │ │ElastiCache│ │ Aurora │
│ │ │ (Redis) │ │ │
│个性化数据 │ │高频词/短语 │ │事务数据 │
│ │ │ │ │(支付/账户)│
└──────────┘ └───────────┘ └──────────┘
- DynamoDB:用户个性化学习数据,高并发读写
- ElastiCache Redis:高频词/短语缓存,减少数据库访问
- Aurora:支付、用户账户等强一致性事务
Benefits
- 性能最优:每个数据层使用专门优化的引擎
- 成本效率:按需选择,避免为不需要的功能付费
- 扩展灵活:各数据库独立扩展,互不干扰
- 技术适配:最合适的技术栈解决最合适的场景
Challenges
- 运维复杂度:多数据库意味着多套运维工具和技能
- 数据一致性:跨数据库的分布式事务处理
- 团队技能:DBA 需要掌握多种数据库技术
- 连接管理:应用层需要管理多个数据库连接池
Connections
- Purpose-Built-Databases:多数据库架构是专用数据库理念的组织形式
- DBA-Role-Evolution:多数据库架构要求 DBA 具备更广的技术视野
- Duolingo:Duolingo 是多数据库混合架构的经典生产案例
- Netflix:Netflix 也采用多数据库架构支撑大规模流媒体平台