Skip to content
作者:daily5am创建:-更新:-
字数:预计阅读: 分钟访问量:--

分布式系统设计原则

分布式系统设计是高级开发者的核心技能,理解设计原则对于构建高可用系统至关重要。

核心问题

CAP理论

CAP定理:

  • C(Consistency):一致性
  • A(Availability):可用性
  • P(Partition Tolerance):分区容错性

结论:

  • 只能同时满足两个
  • 分布式系统必须满足P
  • 在C和A之间选择

BASE理论

  • BA(Basically Available):基本可用
  • S(Soft State):软状态
  • E(Eventually Consistent):最终一致性

一致性哈希算法

原理:

  • 将哈希空间组织成环形
  • 节点映射到环上
  • 数据映射到最近的节点

优点:

  • 节点增减影响小
  • 负载均衡
  • 扩展性好

负载均衡策略

  1. 轮询(Round Robin)
  2. 加权轮询(Weighted Round Robin)
  3. 最少连接(Least Connections)
  4. IP哈希(IP Hash)
  5. 一致性哈希(Consistent Hash)

服务治理

1. 服务注册与发现

  • Eureka
  • Consul
  • Nacos
  • Zookeeper

2. 配置中心

  • Config Server
  • Nacos Config
  • Apollo

3. 限流降级

  • Hystrix
  • Sentinel
  • Resilience4j

常见面试题

  1. 如何保证分布式系统的一致性?

    • 强一致性:使用2PC
    • 最终一致性:使用消息队列
    • 弱一致性:接受延迟
  2. 如何设计高可用系统?

    • 多副本部署
    • 负载均衡
    • 故障转移
    • 限流降级
  3. 分布式系统的监控?

    • 链路追踪:Zipkin、Jaeger
    • 指标监控:Prometheus
    • 日志聚合:ELK