分布式事务基础(三)2PC与3PC对比

310 阅读2分钟

2PC

  • 优点

原理简单、实现方便

  • 缺点

同步阻塞、单点问题、脑裂、太过保守

  1. 同步阻塞

      在二阶段提交的执行过程中,所有参与该事务操作的逻辑都要处于阻塞状态,也就是说,各个参与者在等待其他参与者响应过程中,将无法进行任何其他操作。

   2. 单点问题

      协调者在整个二阶段提交过程中,起到了非常重要的作用。一旦协调者出现问题,那么整个二阶段提交流程蒋无法运转,更为严重的,如果协调者在阶段二中出现问题,那么其他参与者会一直处于锁定事务资源的状态值,而无法继续完成事务操作。

   3. 数据不一致 

      在阶段二,及执行事务提交的时候,当协调者向所有参与者发送commit请求之后,发生了局部网络异常或者协调者在尚未发送完commit请求之前自身发生了崩溃,导致最终只有部分参与者收到了commit请求。于是,这部分收到了commit请求的参与者就会进行事务提交,而其他没有收到commit请求的参与者则,无法进行事务提交,于是整个分布式系统就出现了数据不一致的现象。

   4. 太过保守

      如果协调者只是参与者进行实物提交询问的过程中,参与者出现故障而导致协调者士中无法获取到所有参与者的响应信息的话,这时协调者只能依靠其自身的超时机制来判断是否需要中断事务,这样的策略显得比较保守。换句话说,二阶段提交协议没有设计较为完善的容错机制,任意一个节点的失败都会导致整个事务的失败。

3PC