1 简介
事务在单系统中的表现:多次数据库操作用事务进行管理,来保证ACID原则。
但是如果各个模块都是单独独立出来的微服务,进行了分布式部署,单系统里的事务将不能保证各个数据库操作的一致性,因此就需要分布式事务来进行统一管理。要么全部成功执行,要么全部不执行。
2 2PC
2.1 原理
分布式事务:两阶段提交与三阶段提交 中的 两阶段提交协议(2PC:Two-Phrase Commit)
中的 第一阶段:投票阶段
和 第二阶段:事务提交阶段
2.2 缺点
分布式事务:两阶段提交与三阶段提交 中的 两阶段提交协议(2PC:Two-Phrase Commit)
中的 缺点: 单点问题 同步阻塞 数据不一致性
2.3 代码实现
分布式–3.1–分布式事务_2PC代码实现
3 3PC
3.1 原理
2PC的两个阶段解释3PC的后两个阶段。3PC比2PC多一个CanCommit阶段 并 多了超时提交机制。
分布式事务:两阶段提交与三阶段提交 中的 三阶段提交协议(2PC:Three-Phrase Commit)
中的 第一阶段:can_commit
、第二阶段:pre_commit
和 第三阶段:do_commit
3.2 缺点
分布式事务:两阶段提交与三阶段提交 中的 三阶段提交协议(2PC:Three-Phrase Commit)
中的 最后
3.3 代码实现
pass