请解释分布式系统中的 CAP 定理,并说明它在实际系统设计中的意义。
考察说明
考查候选人对分布式系统基础理论的理解及其对系统设计权衡的认知。
回答思路
- 【回答框架 1】CAP 定理指出,在分布式系统中,一致性、可用性和分区容错性三者不可兼得。一致性指所有节点在同一时刻看到相同的数据;可用性指每个请求都能在有限时间内获得响应;分区容错性指系统在通信中断时仍能继续运行。
- 【回答框架 2】核心前提是网络分区不可避免,因此在设计系统时必须舍弃三者之一。常见的选择是 CP 或 AP。CP 系统在分区时优先保证一致性,可能拒绝请求;AP 系统优先保证可用性,但可能返回旧数据。
- 【回答框架 3】实际中,系统设计需依据业务需求权衡。例如,金融系统多选择 CP,社交应用多选择 AP;同时,很多系统在非分区时提供强一致性,在分区时降级为最终一致性。
- 【关键点 1】CAP 定理强调网络分区不可避免。
- 【关键点 2】三者不可兼得,需在一致性和可用性间权衡。
- 【关键点 3】典型 CP 系统如 Zookeeper,AP 系统如 Cassandra。
- 【关键点 4】实际设计常采用最终一致性。