跳转至

分布式架构理解

一、什么是分布式

把一个系统拆成多个独立部署的服务,通过网络通信,对外表现为一个整体。

二、CAP 定理

分布式系统不能同时满足:

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

网络分区不可避免,所以实际是 CP 或 AP 二选一

选择 系统
CP ZooKeeper、etcd、HBase
AP Eureka、Cassandra、Nacos(默认 AP)

三、BASE 理论

CAP 的延伸,是大规模分布式系统的实践:

  • Basically Available:基本可用,允许响应时间变长、部分功能降级。
  • Soft State:软状态,允许中间状态。
  • Eventually Consistent:最终一致,不要求实时强一致。

四、分布式带来的问题

  1. 网络不可靠:超时、丢包、重复。
  2. 状态不一致:多副本如何同步。
  3. 分布式事务:跨库跨服务如何保证一致。
  4. 服务治理:注册发现、熔断、限流。
  5. 排查困难:链路追踪、日志聚合。

五、常见中间件

  • 注册中心:Nacos、Consul、Zookeeper、Eureka。
  • 配置中心:Nacos、Apollo。
  • RPC:Dubbo、gRPC。
  • 网关:Spring Cloud Gateway、Zuul。
  • 消息队列:RocketMQ、Kafka。
  • 熔断限流:Sentinel、Resilience4j。

六、微服务 vs SOA

  • SOA:粗粒度,ESB 总线。
  • 微服务:细粒度,独立部署,轻量级通信(HTTP/RPC)。

七、设计原则

  • 单一职责:一个服务只做一件事。
  • 无状态:服务节点不存状态,方便水平扩展。
  • 故障隔离:一个服务挂不影响其他。
  • 最终一致:接受短暂不一致,用消息队列补偿。

面试加分

  • 答 CAP 时强调"网络分区一定会发生,所以实际是 CP/AP 二选一"。
  • 阿里为什么选 AP?因为注册中心短暂不一致比不可用更可接受。