1. 分布式基础

1.1 什么是分布式系统

分布式系统是由多个独立计算机节点组成的系统,这些节点通过网络通信,共同完成特定的任务。分布式系统是为了解决单机系统在性能、可用性、可扩展性方面的限制而出现的。

分布式系统的特征:

1.2 分布式系统的核心问题

问题 描述 解决方案
通信 节点间如何高效、可靠地通信 RPC、消息队列
一致性 多节点数据如何保持一致 分布式事务、一致性协议
可用性 系统在部分故障时是否可用 副本、故障转移
分区容错 网络分区时系统如何应对 CAP、BASE 理论

1.3 CAP 理论

graph TB
    A[CAP 理论] --> B[Consistency 一致性]
    A --> C[Availability 可用性]
    A --> D[Partition Tolerance 分区容错]
    B --> E[所有节点数据同一时间完全一致]
    C --> F[每次请求都能获取到响应]
    D --> G[系统在网络分区时仍能运行]

    H[分布式系统] --> I[AP: 可用性 + 分区容错]
    H --> J[CP: 一致性 + 分区容错]
    H --> K[CA: 一致性 + 可用性]

CAP 三要素详解:

要素 说明 示例
一致性 所有节点在同一时间看到的数据相同 主从复制同步
可用性 每次请求都能获取到响应(不保证数据是最新的) 缓存系统
分区容错 系统在网络分区时仍能运行 分布式数据库

CAP 不可能三角:分布式系统最多只能同时满足其中两个特性,必须在一致性和可用性之间做权衡。

CAP 组合选择:

组合 特点 适用场景
CP 保证一致性,牺牲可用性 金融系统、支付系统
AP 保证可用性,牺牲一致性 社交网络、内容分发
CA 不考虑分区容错(单机系统) 传统关系型数据库

1.4 BASE 理论

BASE 是对 CAP 中 AP 策略的延伸,强调的是最终一致性。