1. 二阶段提交
降低一次请求中事故发生的概率。
资源占用大,效率低,不能100%保证事务的CAP(三者不可兼得)
2.三阶段提交
can commit
pre commit(如果超时,默认回滚)
do cpmmit(如果没有收到事务协调的回应即超时,默认提交)
3.二阶段和三阶段没有保证数据一致性,比如宕机导致的数据不一致,人工补偿,通过脚本(根据业务)
4.TCC(Try Confirm Cancel)解决方案
5.消息队列+本地事件表
缺点:适合业务链短,业务不复杂,不适合业务链长的;
优点:吞吐量高
6.可靠消息服务
7.seata
7.1.官网:https://seata.io/
7.2.
8.LCN(Lock Confirm Notify)解决方案
略
9.最大努力通知方案
略