分布式事务
2024-02-21 18:04:28 0 举报
AI智能生成
分布式事务
作者其他创作
大纲/内容
基础知识
作用
ACID 特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
Redis 支持事务吗?
实现方案
强⼀致事务
XA
2PC 协议
具体过程
第一阶段(prepare)
第二阶段 (commit/rollback)
结果
事务成功
事务失败
准备阶段失败 - 超时机制 + 提交回滚事务操作
提交阶段失败 - 不断重试
思考
如何解决协调者单点故障问题?进行选举
如何知新协调者该发啥请求问题?日志记录
如果参与者挂了,新协调如何知道?没法知道
实战:一个完整的 xa 例子
3PC 协议
具体过程
准备阶段-CanCommit
预提交阶段-PreCommit
提交阶段-DoCommit
结果
事务成功
思考
同 2PC 的区别?
参与者超时能带来什么样的影响?
AT
TCC
具体过程
优缺点
实战
最终⼀致事务
本地消息表
具体过程
优缺点
拓展:基于 transaction log 去事件通知
事务消息
具体过程
最大努力通知
具体功能
本地消息表和事务消息都属于可靠消息,与这里介绍的最大努力通知有什么不同?
SAGA
实现方式
协同式(Choreography-base)
交互过程
流程流转
优缺点
编排式(Orchestration-based)
交互过程
流程流转
优缺点
适用场景
优缺点
常见的异常情况
开源方案
首款 golang的开源分布式事务管理器 - DTM
阿里开源了 Java 版的分布式事务解决方案 Seata
微服务流程编排引擎Temporal
总结
参考
面试必问:分布式事务六种解决方案
再有人问你分布式事务,把这篇扔给他
分布式事务最经典的七种解决方案
DTM 文档
Seata 文档
0 条评论
下一页