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

73 lines
3.1 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
- Polyglot
sources:
- ctp-topic-51-architecting-with-aws-purpose-built-databases
last_updated: 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 也采用多数据库架构支撑大规模流媒体平台
## Referenced In
- [[ctp-topic-51-architecting-with-aws-purpose-built-databases]]