技术学习打卡 (2023-01-30)
技术学习打卡 - 周志明的软件架构课
14 | 分布式事务之可靠消息队列
15 | 分布式事务之TCC与SAGA
https://time.geekbang.com/column/article/322287
https://blog.csdn.net/weixin_44795847/article/details/123313562
分布式事务DTP-多服务多数据源
1. CAP
1.1) Consistency: 各结点数据的一致性
1.2) Availability: 不间断服务能力
1.3) 分区容忍性(Partition Tolerance): 部分节点因网络失联 仍可提供正常服务能力
2. AICD vs. BASE
2.1) AICD
atomicity 不可分割性
consistency 一致性
isolation 隔离性 /独立性
durability 持久性
2.2) BASE
基本可用 (Basically Available):支持分区失败
软状态 (Soft State): 允许结点间数据短时间内不同步
最终一致性 (Eventual Consistency): 实时不一致,最终一致
3. TCC
3.1) Try: 负责资源的检查和预留
3.2) Confirm: 提交操作,执行真正的业务
3.3) Cancel: 预留资源的取消
4. 消息队列模式:
4.1) 分布式事务拆分成本地事务进行处理,将需要分布式处理的任务通过消息日志的方式来异步执行。消息日志可以存储到本地文本、数据库或MQ中间件,再通过业务规则自动或人工发起重试
5. SAGA
5.1) 协议: 每个Saga事务由一系列幂等的有序子事务(sub-transaction)Ti组成 ; 每个Ti都有对应的幂等补偿动作Ci,补偿动作用于撤销Ti造成的结果
5.2) 补偿策略: 向前恢复(forward recovery):对应于上面第一种执行顺序,发生失败进行重试,适用于必须要成功的场景; 向后恢复(backward recovery):对应于上面提到的第二种执行顺序,发生错误后撤销掉之前所有成功的子事务,使得整个Saga的执行结果撤销
6. Ali Seata
6.1) AT/2PC: AT事务模型包含TM(事务管理器),RM(资源管理器),TC(事务协调器)
6.2) TCC
6.3) Saga
网友评论