MST

星途 面试题库

面试题:分布式系统下2PC存在哪些缺陷及如何在一定程度上缓解

详细说明2PC在分布式系统应用时存在的主要缺陷,比如单点故障、数据一致性风险等。针对其中至少一种缺陷,提出可行的缓解策略,并说明其原理。
25.0万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

2PC存在的主要缺陷

  1. 单点故障:协调者在2PC中处于核心地位,若协调者发生故障,整个事务流程将无法继续。例如在一个银行转账分布式事务场景下,协调者故障会导致转账相关的各个分支事务无法得知最终决策,可能导致资金处于不确定状态。
  2. 数据一致性风险:在阶段二,如果协调者发出提交指令后部分参与者未收到(如网络分区等原因),已提交的参与者和未提交的参与者数据状态不一致。例如电商订单系统,部分库存节点提交扣减库存,部分未提交,就会出现库存数据不一致。
  3. 同步阻塞:在2PC执行过程中,从阶段一开始,参与者就会锁定资源,直到事务结束。在高并发场景下,大量资源被长时间锁定,会严重影响系统性能。例如一个大型电商促销活动,众多订单事务同时进行,2PC的同步阻塞可能导致大量资源被占用,新的订单处理缓慢。

针对单点故障的缓解策略

  • 策略:采用主备协调者模式,即设置一个主协调者和多个备用协调者。
  • 原理:正常情况下,主协调者负责整个2PC事务流程的控制和协调。当主协调者发生故障时,备用协调者可以通过选举机制(如基于raft协议等)选出一个新的主协调者继续事务流程。例如在分布式数据库系统中,原主协调者故障,备用协调者迅速接管,根据已记录的事务日志等信息继续推进事务,保证事务处理不受影响,从而缓解单点故障带来的问题。