本地事务的四个原则: ACID 原子性 一致性 隔离性 持久性

    什么式分布式事务?:
    在非单个服务或非单个数据库的架构下产生的事务。
    例如: 跨数据源的分布式事务
    跨服务的分布式事务
    综合情况
    CAP定理:分布式系统有三个指标

    • Consistency(一致性) 分布式的任意节点得到的数据必须一致
    • Availability(可用性) 用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝
    • Partition tolerance (分区容错性) 因为网络原因,或者其他原因导致分布式系统中的部分节点与其他节点失去链接,形成独立分区。 容错:出现分区时,整个系统也要持续对外提供服务

    三个指标不可能同时做到,这个结论就叫做 CAP 定理
    P 不可避免, 只能在 A 和 C 之间实现一个

    BASE 理论:
    基本可用: 分布式出现故障 允许损失部分可用,保证核心可用
    软状态: 在一定时间内,允许出现状态, 比如临时不一致
    最终一致性: 无法保证强一致性,但是在软状结束后最终一致

    AP模式:最终一致性,各子事务分别执行和提交,允许出现结果不一致,然后弥补措施恢复数据;
    CP模式:强一致性,弱可用,各子事务之间相互等待,同时提交,同时回滚,达成强一致

    事务协调者(TC): 协调子事务之间的互相通信,协调事务状态。

    Seata 框架
    阿里和蚂蚁金服开发的解决分布式事务的一站式开源框架

    seata事务管理的三个重要角色:

    TC: 事务协调者,维护全局和分支事务的状态,协调全局事务提交或回滚
    TM: 事务管理器,定义全局事务的范围,开始全局事务,提交或者回滚全局事务;
    RM:资源管理器,管理分支事务处理的资源,与TC 交互注册分支 报告分支状态,并驱动分支事务提交或者回滚;
    image-20210724172326452.png

    Seata中的四种不同的事务模式:

    XA模式:强一致性分阶段模式,无侵入。
    TCC模式:最终一致性,的分阶段事务模式,有业务侵入。
    AT模式:最终一致性,分阶段事务模式,无侵入式 【默认】。
    SAGA模式:长事务模式,有侵入。

    AT模式工作流程:

    image-20210724175327511.png