用途
该技能用于帮助我们构建能够从原型阶段平滑扩展到生产规模的数据基础设施。按照文档描述,适用场景包括:架构全新的数据平台;当前基础设施无法承受负载(出现慢查询、超时);计划从数千级扩展到百万级的记录或请求量;在数据库、缓存、消息队列之间做选型;设计 ETL/ELT 管道;构建实时分析或流式系统。
主要能力
文档按扩展阶段组织内容:
- 原型阶段(< 10K 用户):单数据库服务器、无缓存、同步处理、简单备份;当响应时间 > 200ms 或数据库 CPU > 60% 时考虑升级。
- 缓存阶段(10K - 100K 用户):引入 Redis/Memcached、CDN、缓存失效策略,并给出 Cache-Aside 模式示例。
- 只读副本阶段(100K - 1M 用户):写主库、读副本,监控复制延迟,并给出复制延迟导致的“读己之写”问题及修复示例。
- 分片阶段(1M - 10M 用户):介绍哈希分片、范围分片、地理分片三种策略及其优缺点,以及跨分片 JOIN、分布式事务、分片键选择等挑战。
- 分布式阶段(10M+ 用户):多区域部署、分布式共识(Raft、Paxos)、全局负载均衡、边缘缓存,并列举 CockroachDB、YugabyteDB、Google Spanner、DynamoDB Global Tables 等数据库。
此外,文档还包含:数据存储选型决策树与数据库对比表(PostgreSQL、MySQL、MongoDB、Cassandra、Redis、DynamoDB、ClickHouse、Elasticsearch);缓存策略(Cache-Aside、Write-Through、Write-Behind、Refresh-Ahead)与缓存失效策略(TTL、事件驱动、版本号);消息队列与异步处理(队列对比、任务队列模式、事件总线 Pub/Sub、重试策略与死信队列);数据管道模式(ETL、ELT、流式处理);监控与可观测性指标及告警阈值示例;迁移策略(双写、回填、校验、下线,以及虚拟分片重分片方案)。
使用方式
文档给出的输出格式为:先做当前架构分析并识别瓶颈,再给出推荐架构(文本架构图),然后列出需要新增的组件及原因与做法,最后给出迁移计划。技能以模式示例、对比表和决策树的形式提供参考,而不是单一安装命令。
适用场景
适合正在规划或重构数据平台、遇到查询变慢或超时、准备从数千级扩展到百万级规模、需要在多种数据存储与队列之间做技术选型,以及设计批处理或实时管道的工程场景。
限制
文档未提供具体的性能基准测试数据、各数据库的实际成本或价格信息,也未提供完整的生产级部署脚本。分片、副本、迁移等示例为模式演示代码,实际落地需结合具体环境验证。