BASE 理论
1.1 定义
BASE 理论由 eBay 架构师 Dan Pritchett 提出,是 AP 系统的设计哲学,与 ACID 相对:
- Basically Available(基本可用):系统出现故障时允许损失部分可用性——响应时间可能变长,或部分非核心功能降级——但保证核心功能仍然可用。
- Soft State(软状态):系统中的数据允许存在中间状态,且该中间状态不会影响系统的整体可用性。数据在不同副本之间可以有一段时间的不一致。
- Eventually Consistent(最终一致性):系统中的数据副本在经过一段时间的同步后,最终能够达到一致的状态。
1.2 BASE 与 ACID 对比
| 维度 | ACID | BASE |
|---|---|---|
| 核心思想 | 强一致性优先 | 可用性优先 |
| 一致性模型 | 强一致性 | 最终一致性 |
| 典型场景 | 金融交易、订单扣款 | 社交动态、商品评论、库存缓存 |
| 系统复杂度 | 事务管理复杂 | 需设计冲突检测和补偿逻辑 |
| 可扩展性 | 难以横向扩展 | 易于横向扩展 |
| 响应延迟 | 较高(锁等待、同步) | 较低 |
工程实践中的融合:现代大型系统几乎不会在全局层面严格遵守 ACID。通常的做法是:在需要强一致性的核心链路使用 ACID 事务(如订单创建),在非核心链路使用 BASE 模式(如库存缓存同步、社交动态推送)。这种融合被称为”柔性事务”或”最终一致性事务”,我们会在分布式事务章节深入讨论。