
书: https://pan.baidu.com/s/1A6ZLSPMbCiZ-L4eRucUvXQ?pwd=kt7i
一些笔记分享给大家:
一、数据系统基础
- “可靠性(Reliability)指系统容忍故障,可伸缩性(Scalability)指系统应对负载增长,可维护性(Maintainability)指系统易于演进。”
- “批处理(Batch Processing)与流处理(Stream Processing)的本质区别:前者处理有限数据集,后者处理无限事件流。”
二、数据存储与编码
- “B树与LSM树的权衡:B树读更快(随机访问),LSM树写更快(顺序追加),但需后台压缩。”
- “Avro、Protocol Buffers等二进制编码比JSON更高效,模式(Schema)演进需兼容性规则(如字段只增不减)。”
三、分布式系统
- “CAP定理的实践意义:网络分区(Partition)时需在一致性(Consistency)与可用性(Availability)间选择,但三者不可兼得。”
- “线性一致性(Linearizability)是‘最强’一致性模型,读操作总能看到最新写入,但牺牲性能。”
四、复制与分区
- “主从复制(Leader-Follower)的写瓶颈可通过分片(Sharding)缓解,但跨分片事务复杂。”
- “多领导者复制(Multi-Leader)适合多地写入场景,但需解决写冲突(如最后写入胜利-LWW或自定义合并逻辑)。”
五、事务与一致性
- “ACID中隔离性(Isolation)的四个级别:读未提交→读已提交→可重复读→串行化,性能与正确性成反比。”
- “两阶段提交(2PC)阻塞性强,Paxos/Raft等共识算法更适合跨节点协调。”
六、流处理
- “事件溯源(Event Sourcing)将状态变更记录为不可变事件流,支持时间旅行查询(重建历史状态)。”
- “Kafka的消费者组(Consumer Group)实现‘竞争消费’,分区(Partition)内消息有序。”
七、批处理
- “MapReduce的局限:中间结果落盘导致延迟高,Spark通过内存计算(RDD)优化。”
八、数据系统演进
- “从单体到微服务的代价:分布式事务、跨服务监控、数据一致性的复杂性陡增。”
- “数据湖(Data Lake)存储原始数据,数据仓库(Data Warehouse)存储清洗后的结构化数据。”
九、安全与隐私
- “端到端加密(End-to-End Encryption)确保数据仅对通信双方可见,但牺牲搜索/聚合能力。”
十、设计哲学
- “复杂性(Complexity)是系统的最大敌人——简单性(Simplicity)来自抽象,而非偶然。”
- “数据系统的未来是‘松散耦合’:组件通过明确接口交互,而非共享数据库。”
- “监控(Monitoring)与追踪(Tracing)的区别:前者回答‘是否出问题’,后者回答‘为何出问题’。”
- “没有‘银弹’架构——每个选择都是权衡(Trade-off),理解业务需求比技术选型更重要。”