返回首页

分布式系统设计核心原则

2024年1月28日13 分钟阅读后端架构
架构设计微服务
分布式系统设计核心原则

分布式系统设计核心原则

分布式系统由多个独立计算机组成,对外表现为一个统一的整体。

CAP 定理

分布式系统无法同时满足以下三个特性:

  • Consistency(一致性):所有节点看到相同的数据
  • Availability(可用性):每个请求都能得到响应
  • Partition Tolerance(分区容错性):网络分区时系统仍能运行

实际系统中通常选择 CP 或 AP。

常见设计模式

负载均衡

Client -> Load Balancer -> [Server1, Server2, Server3]

数据分片

def get_shard(key, num_shards):
    return hash(key) % num_shards

# 用户数据按 user_id 分片
shard_id = get_shard(user_id, 10)

最终一致性

class EventualConsistentStore:
    def __init__(self):
        self.local_cache = {}
        self.version_vector = {}
    
    def read(self, key):
        if key in self.local_cache:
            return self.local_cache[key]
        return self.fetch_from_primary(key)
    
    def write(self, key, value):
        self.queue_write(key, value)
        self.local_cache[key] = value  # 乐观更新

故障处理

  • 超时重试:设置合理的超时时间和重试策略
  • 熔断器:防止级联故障
  • 降级策略:核心功能优先保证

分布式系统设计需要权衡各种因素,没有银弹解决方案。