提纲:

🔥分布式事务

  • 问题

  • CAP定理

  • BASE理论

  • 解决方案

一、分布式事务

1. 问题

  • 在分布式微服务中,例如一个下单功能,涉及到订单微服务与库存微服务,若库存扣除成功,订单添加失败,就会导致事务不一致

2.CAP 定理

  • Consistency:一致性

    • 强一致性:必须保证每次读取到最新的数据 —— 这需要完成写操作后,进行数据同步最新的数据,期间会锁定读操作

    • 弱一致性:可以容忍部分数据版本的滞后

    • 最终一致性:只需要经过一段时间后,分布式系统中都能看到最新的数据

  • Availability:可用性 —— 向服务端请求时,每次都能返回数据,不关心数据是否是最新的,必定与强一致性互斥

  • Partition tolerance:分区容错性,由于网络中断等原因,导致服务中某个节点与其他节点失去连接,成为一个独立分区,出现分区时,系统仍然能向外提供服务

    • # 解决分区容错性需要将节点中的数据保存在其他不同节点上,那么数据在一个节点发生变化时,就必定会带来节点间的数据一致性和可用性的抉择问题

    • # 对于分布式事务,其实就可以看成将一个事务的执行结果,即回滚/提交,保存在了多个分支事务中,每一个执行分支事务的服务节点都能根据分支事务执行情况,对这个结果进行修改,那么就必定会带来C/A 的选择问题

  • CAP 定理指分布式系统无法同时高度满足这三个条件,实际上,如果舍弃 P,则只能采用单点服务,因此分布式系统都是选定 P,再从 C/A 中选择一个

3.BASE 理论

  • 1、Basically Available:基本可用,分布式系统出现故障时,允许损失一定的可用性

    • CP 模式:即关注一致性,使多个子事务执行后互相等待,同时提交,同时回滚,实现强一致,但在事务实行时会使系统处于弱可用状态

  • 2、Soft State:软状态,允许在系统运行时出现临时的不一致状态

  • 3、Eventually Consistent:最终一致,在软状态后,保证数据的一致

    • AP 模式:即关注可用性