CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Specialty 数据库入门/课时/一致性与 CAP
RawBlame
课时目录12 节

Specialty 数据库入门

  1. 01数据库选型地图
  2. 02图数据库
  3. 03宽列存储
  4. 04文档库扩展
  5. 05列式 OLAP
  6. 06Solr 与搜索
  7. 07Firebase BaaS
  8. 08Oracle 企业库
  9. 09一致性与 CAP
  10. 10何时选哪种库
  11. 11运维与备份
  12. 12综合练习

一致性与 CAP

衔接 scale-cap;各库取舍。

25 分钟

一致性与 CAP

分布式数据库 无法同时 保证分区容忍(P)下的强一致(C)与永远可用(A)——CAP 是 Specialty 选型与 scaling-essentials 的共同语言。本课把各库的默认取舍 映射到 CAP,避免口号式「最终一致」。

学习目标

  • 复述 CAP 三要素与分区(P)在分布式中的必然性
  • 对照 scale-cap 理解工程上的 PACELC 延伸
  • 为 Cassandra、MongoDB、DynamoDB、Elasticsearch 各记一笔默认倾向

CAP 速记

C(Consistency)  所有节点同一时刻看到相同数据
A(Availability) 每个请求都能得到非错误响应
P(Partition tolerance) 网络分区时系统仍能继续工作

分布式系统 P 必选 → 分区发生时只能在 C 与 A 之间权衡

不是三选二弃一:正常运行时可兼顾;分区发生时 才显式降级。

各库典型取舍

系统分区时倾向可调机制
PostgreSQL 单主CP(主不可达则写失败)同步复制提高 C
CassandraAP 默认QUORUM 提高读一致
MongoDB可配 CP/APwriteConcern / readConcern
DynamoDB最终一致读 vs 强一致读ConsistentRead 参数
ElasticsearchAP 搜索refresh、wait_for_active_shards
Neo4j 集群偏 CP因果集群模式

与 ddb-crud 的条件写、mongo-crud 的 concern 参数 同一逻辑不同 API。

PACELC:CAP 的补充

若无分区(Else)→ 在 Latency 与 Consistency 间权衡

例如:DynamoDB 强一致读 更慢;Cassandra LOCAL_QUORUM 降延迟 但缩小一致范围。扩展决策见 scale-intro。

业务如何落地

  1. 写清 SLA:支付账本 vs 点赞计数 vs 搜索索引
  2. 主库权威:postgresql-essentials 持订单;ES 索引可重建
  3. 显式降级:分区时关非核心写、只读模式、队列缓冲

练习

  • 为「课程搜索索引延迟 30s」标注 CAP 可接受理由
  • 重读 ,补一句 PACELC 理解
scale-cap
  • 对比 MongoDB majority 与 DynamoDB 强一致读各适合什么业务
  • 小结

    CAP/PACELC 是跨库通用词汇——先定 SLA,再选默认与可调旋钮。 下一课决策树:把地图收成可执行的选型步骤。

    加载本节练习…
    ← 上一课Oracle 企业库下一课 →何时选哪种库