本技能是 Martin Kleppmann《Designing Data-Intensive Applications》的精炼参考指南,核心论点是:数据而非计算是现代应用的核心挑战。
用途:在设计数据库模式、选择存储引擎、规划复制与分区策略、确定事务隔离级别、处理批处理与流处理架构时加载,用于对照判断。
主要内容:可靠性、可扩展性与可维护性三支柱,故障分类(硬件、软件、人为),纵向/横向/弹性扩展模式;数据模型选型(关系、文档、图)与模式写入/读取策略、规范化取舍;存储引擎 B-Tree 与 LSM-Tree 对比,OLTP 与 OLAP 差异,数据仓库与列式存储;编码格式 JSON、Thrift、Protobuf、Avro 的大小与兼容性规则;复制模型(单主、多主、无主)、同步与异步、复制滞后问题与冲突解决、quorum 条件 w + r > n;分区策略(键范围、哈希、复合)与二级索引、再平衡、请求路由;事务隔离级别与并发异常、可串行化实现;分布式系统不可靠性(网络、时钟、进程)与 fencing token、安全性与活性;一致性模型与共识算法(2PC、Paxos/Raft/Zab、FLP 不可能性);批处理的 MapReduce、连接策略与数据流引擎;流处理的 broker 模型、CDC、事件溯源、流连接、窗口与处理保证;数据集成、端到端 exactly-once 与可审计性。
使用方式:作为参考资料按主题查阅,并依据文末决策框架(数据模型、存储引擎、复制策略、隔离级别、批处理与流处理的选择)做快速判断。
限制:本资料为阅读提炼,具体产品的版本、平台与价格等内容暂未提供;实际实施需结合官方文档验证。