数据密集型应用系统设计笔记

Designing Data-Intensive Applications

Posted by ypingcn on September 9, 2023 Lastest updated on September 9, 2023
[AD] -- 下方为内容广告,点击支持作者,想过滤广告? -- [AD]

Powered by Claude AI

第一章 可靠性、可扩展性和可维护性

这三个指标是设计高质量数据密集型系统的基石
通过冗余机制提高可靠性,避免单点故障
按需扩展更经济高效,逐步水平拆分是常用方法
良好的抽象和松耦合设计提高可维护性
采用合理的缓存策略也很重要

第二章 数据模型和查询语言

关系型数据库的模式、约束以及SQL查询
各种NoSQL数据库数据模型,如键值、文档、列存储等
查询语言的特点、性能考量
不同的数据模型适合不同的场景

第三章 存储与检索

磁盘与内存数据存储结构优化
日志结构、LSM树等写入优化方法
B树等索引结构及查询优化
数据压缩方法

第四章 编码与演化

版本控制、AB测试的重要性
向后兼容的处理
架构演进的模式
服务化与微服务架构优点

第五章 复制

为什么需要复制
同步与异步复制机制
一致性与可用性的平衡
脑裂问题及解决方案

第六章 分区

数据分区的目的和方法
分区键的选择
水平拆分的实现
动态分区调整

第七章 交易

ACID特性及事务实现
两阶段提交协议
PostgreSQL的可串行化
NoSQL数据库的分布式事务

第八章 分布式系统的麻烦

处理延迟的方法
时钟同步与Globally Unique Identifiers
一致性问题与解决方案
幂等性设计的重要性

第九章 批处理

批处理的适用场景
MapReduce、Spark等技术
流处理与微批处理的对比
Lambda架构和Kappa架构

第十章 操作

基础设施管理和自动化
监控与告警系统设计
容量规划方法
数据系统部署和配置最佳实践
[AD] -- 下方为内容广告,点击支持作者,想过滤广告? -- [AD]