0%

分布式事务

分布式事务

概念

  1. 分布式环境下,一个事务的多个操作位于不同的物理机/虚拟机上
  2. 分布式环境下如何保证事务的ACID特性

锁 VS 事务

  • 分布式锁关心进程间的互斥关系(隔离性)

  • 分布式事务关心ACID四个特性

实现方法

2PC

2 phase commit

  • 组成

    • 协调者(coordinator)
    • 参与者 × N
  • 过程

    • coordinator询问所有参与者,事务执行(是否成功

    • 一票否决

      • 所有参与者提交
      • 所有参与者回滚
  • 缺点

    • 同步

      • 等待coordinator消息过程中阻塞
    • 单点故障

    • 数据不一致

      • 网络问题导致只有部分参与者收到commit消息
    • 一票否决,不“乐观”

本地消息表

  • 组成

    • 本地

      • 业务数据表
      • 消息表
    • 消息队列

  • 过程

    • 一个本地事务

      • 写业务数据表
      • 写本地消息表
    • 一方将本地消息表中的消息移到消息队列

    • 一方从消息队列中读取消息进行下一步操作