分布式系统基础理论概览

2025/06/24

Categories: 技术 Tags: 分布式系统

分布式系统理论是一组用于理解、设计和分析分布式系统的核心概念、模型和原理。这些理论帮助解决由分布性、并发性、故障和不确定性带来的挑战。基础理论包括 CAP 理论和 BASE 理论。

CAP 理论

基本概念

一致性(Consistency)

在分布式环境中,一致性是指数据在多个节点之间能够保持一致的特性。如果在某个节点上执行变更操作后,用户可以立即从其他任意节点上读取到变更后的数据,那么就认为这样的系统具备强一致性。

可用性(Availability)

可用性是指系统提供的服务必须一直处于可用状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。

它主要强调以下两点:

分区容错性(Partition Tolerance)

分区容错性指定是分布式系统在遇到网络分区时,仍需要能够对外提供一致性和可用性的服务,除非是整个网络环境都发生了故障。

这里的网络分区指的是:

核心概念

在分布式系统中,一致性 (C)、可用性 (A) 和分区容错性 (P) 这三个理想特性无法同时完全满足。当发生网络分区(P)时,系统必须在一致性(C)和可用性(A)之间做出取舍。

选择策略

因为 CAP 理论不能将一致性、可用性和分区容错性都满足,所以需要根据不同系统的特性进行取舍,主要分为以下三种情况:

BASE 理论

BASE 是 Basically Available(基本可用)、Soft-state(软状态)和 Eventually Consistent(最终一致性)三个短语的缩写。

BASE 理论是对 CAP 中一致性 C 和可用性 A 权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。

基本概念

基本可用(Basically Available)

基本可用是指分布式系统在出现不可预知的故障时,允许损失部分可用性,例如:

软状态(Soft-state)

软状态也称为弱状态,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统整体的可用性,即允许不同节点间的数据同步存在延时。

最终一致性(Eventually Consistent)

最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终需要达到一致的状态。

核心思想

即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。也就是牺牲数据的一致性来满足系统的高可用性,系统中一部分数据不可用或者不一致时,仍需要保持系统整体『主要可用』。

参考文档