cap理论
base理论
服务基本可用(核心服务一定可用,部分服务可以不可用)
软状态 数据存在中间状态
最终一致性
三阶段提交:https://www.cnblogs.com/balfish/p/8658691.html
两阶段提交
预执行
提交或回滚
问题:
- 单点
- 同步阻塞
- 数据不一致
- 服务间互相操作别的服务数据库
最大努力通知
失败后不断通知
提供业务查询接口
可靠消息最终一致性
- 业务发起方执行本地事务,保证本地事务与消息的原子性(本地消息表),启动定时任务发送消息给参与方,无响应时重复发送
- 参与方接受到消息后保证数据一致性并通过MQ的消息ACK机制返回数据处理结果。
TCC
尝试:检查和预留资源; 可能有网络延迟,避免资源挂起
确认/取消:执行真正业务,或者回滚业务; (失败重试) 幂等,空取消
操作的是接口,不存在同步阻塞问题
每个分支事务提供三个接口,业务变得复杂