两阶段提交2PC

事务提交示意图:

两阶段提交2PC
两阶段提交2PC

事务中断示意图:

两阶段提交2PC

优点:原理简单,实现方便
缺点:
同步阻塞:二阶段提交最大的问题就是同步阻塞,各个参与者在等待其他参与者响应的过程,将无法进行其他任何操作。

单点问题:协调者单点,一旦出现问题,提交流程将无法流转,更为严重的是,如果协调者在阶段二中出现问题,其他参与者讲会一直处于锁定事务资源的状态中。

数据不一致:阶段二协调者只发送部分commit后出现问题,就会造成数据不一致

太过保守:没有完善的容错机制,任意一个节点的失败都会导致整个事务的失败

上面的所有问题虽然很少发生,但都需要人工干预处理,没有自动化的解决方案,因此两阶段提交协议在正常情况下能保证系统的强一致性,但是在出现异常的情况下,当前处理的操作处于错误状态,需要管理员人工干预解决, 因此可用性不够好,这也符合CAP 协议的一致性和可用性不能兼得的原理。