← 每日面试题 学习看板

什么是分布式系统?和集群的区别?

面试题/02架构设计题/02分布式/01分布式基础理论/什么是分布式系统?和集群的区别?.md

面试记录 2026-10-10

题目:什么是分布式系统?和集群的区别?

难度:low

标签:arch/distributed/theory, distributed/theory, difficulty/low

评分:⭐⭐⭐☆☆(3/5)

我的回答

分布式系统和集群是两个概念。分布式系统相当于一整套的系统,它可以通过分布式去提供 CAP 中可用性,去保证项目的可用性以及项目的更高的质量性能。而集群指的是一组机器,它跟系统没什么关系。比如说我有一个数据库集群,有一组机器的集群,它并不一定是什么机,什么系统,它可能是一组物理硬件,它完全是两个概念。

分布式来说,分布式主要是解决单体上存在的几个问题。首先是单体的承载量,单体服务的话本身它有自己,由于机器限制,它有自己的承载量,无法突破。单体的极限,这时候要扩展就需要引入分布式了。通过从一台服务转化为多台服务提供服务,组成一个所谓分布式系统。而在分布式系统中,核心有这么几个基础原理,一个是 CAP,也就是它本身自身的取舍,可用性、一致性以及分区容错性。由于分布式是多台服务组成的,这时候它自身的构成,由于必然会依赖网络,而网络又存在不可控,这分区容错性就躲不开。然后大家就会在一致性跟可用性中进行选择。最终产生两种血型,AP 与 CP。二者应对不同场景,比如我们常见的选择强一致的,像 Zookeeper,它放弃了可用性,选择强一致。如果集群中出现某个个体不可用不恢复的情况下,集群是整个对外不可用的。而类似于选择高可用的,比如像一些主从数据库,MySQL 的主从,然后 Redis 的集群,都是放弃了强一致而选择高可用。当部分节点不可用的时候,它还是能提供正常的服务的,只是会有延迟或者相对数量不一致,但是后续会有补偿或者恢复,通过同步机制。

点评

优点:

不足:

补充:

完整讲解

第一部分:知识重点剖析

核心考点定位:考察对分布式系统本质的理解,能否区分"集群"这个实现手段与"分布式系统"这个抽象形态。

知识点拆解:

  1. 分布式系统的定义:多个独立计算节点通过网络协作完成目标,节点间无共享内存/磁盘,靠消息通信。核心特征是独立性 + 无共享状态
  2. 集群的定义:多台同类硬件/服务聚合对外提供统一服务,强调协作与聚合。集群是分布式的实现手段之一,但分布式不限于集群
  3. 两者的关系:集群 ⊂ 分布式。数据库集群(主从/分片)、计算集群(Hadoop)、容器集群(K8s)都是分布式形态
  4. CAP 定理:P(分区容错)在网络分布式里必然存在,只能在 C(一致性)和 A(可用性)间取舍。CP 代表 Zookeeper/etcd/HDFS,AP 代表 Redis/Eureka/大多数 Web 服务
  5. BASE 理论:最终一致性 = Basically Available + Soft state + Eventually consistent。CP 系统崩溃时可短暂不可用,AP 系统可能返回脏数据但最终收敛
  6. 一致性的等级:线性一致性(Linearizability)> 顺序一致性 > 因果一致性 > 最终一致性。CAP 的 C 指线性一致性
递进:定义 → 关系 → CAP/BASE 取舍 → 具体系统归类 → 一致性等级

第二部分:考察方向与延伸递进

考察方向:

延伸递进面试题:

  1. CP 系统和 AP 系统分别适合什么场景?
  1. Redis Cluster 是 AP 还是 CP?为什么?
  1. BASE 理论里的"最终一致性"具体指什么?
  1. 分布式系统里 P(分区)为什么躲不开?

第三部分:面试者参考回答(300-600 字口语化)

面试官您好,分布式系统和集群是两个不同层次的概念。集群强调的是"多台同类机器聚合对外提供统一服务",是实现层面的手段;分布式系统强调的是"多个独立节点通过网络协作,节点间无共享状态",是系统形态层面的抽象。两者的关系是:集群是分布式系统的一种常见实现方式,但分布式不限于集群,比如 P2P 网络、Serverless 平台都算分布式,但它们未必形成传统意义上的"集群"。

引入分布式的核心动机有几个:一是突破单机承载上限,无论是 CPU、内存还是磁盘都有硬约束;二是提高可用性,避免单点故障;三是物理分布带来的延迟优势,比如按用户地域部署就近服务;四是资源弹性扩展,方便横向扩容。

分布式系统引入了 CAP 约束。P 即分区容错在分布式场景必然存在,因为网络不可靠,机房断网、路由故障、抖动都躲不开。所以在 P 存在的前提下,我们只能在一致性 C 和可用性 A 之间取舍。选 CP 的典型系统比如 Zookeeper、etcd、HDFS,牺牲可用性换取强一致,节点异常时整个集群可能对外不可用。选 AP 的典型系统比如 Redis 集群、MySQL 主从、Eureka,节点异常时仍能提供大部分服务,但可能短暂返回不一致数据。

在此基础上,业界又提出了 BASE 理论:基本可用 + 软状态 + 最终一致性。它是对 CAP 中 AP 方向的工程化描述,承认短期内允许不一致,但通过补偿、异步复制、对账机制最终收敛。金融场景可能倾向 CP 加分布式事务保证事务语义,而互联网业务更多采用 AP 加最终一致性以换取更高的吞吐和可用性。

除了 CAP 和 BASE,分布式系统还需要解决分布式共识(Paxos、Raft)、分布式事务(2PC、TCC、Saga)、分布式锁、分布式 ID 生成等一系列问题。整体来看,分布式系统的复杂性恰恰源于它打破了单机的共享内存、共享时钟、原子操作这三类隐含前提。