个人技术分享

一、二段式提交
  1. 执行方案
    协调者访问事务执行者(可多个),执行者返回 yes/no,协调者得到全部成功的结果,在发送通知让事务执行者全部提交事务,反之回退事务。
  2. 缺点:
    如果有节点崩了,会导致数据的不一致
    如果一个节点堵塞,会导致其他节点陷入等待状态
    如果协调者崩了,其他事务执行者会进入等待状态
    容错机制太差
二、补偿式
  1. 执行方案
    分为三个阶段 try 。 confirm cancel
    try 对业务系统进行检测与预留
    confirm 对业务系统的执行进行提交
    cancel 主要是在前两部执行失败后,对业务的回退
  2. 缺点
    如果某一步进行了失败,即堵塞,会导致整个业务失败
三、本地事务
  1. 执行方案
    设立一个消息表,与业务表放在一起
    发送业务请求后,将请求放入到消息表中,使用mq队列进行消息发送,消费者进行消费,成功后将消息表消息删除或修改状态,发送失败则继续发送
  2. 缺点
    消息表会与业务耦合在一起,导致一些不必要的代码处理,会有杂活需要处理