分布式事务的解决方案
强一致性:
一、两阶段提交(2PC)
- 引进一个事务协调者
- 准备阶段:每个节点执行自己的任务,并返回执行结果!
- 提交阶段:如果全部成功,则全部执行事务提交;否则全部执行事务回滚!【如果失败,则不断尝试提交或回滚!】
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e920fdfc6a3e9ee3c575ee0d89c860b8.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0071086381aae38813ba517157246648.png)
存在的问题?
- 同步阻塞:等所有事务执行结果后才能提交或回滚
- 单点问题:协调者如果中途故障,则参与者可能会一直阻塞
- 数据不一致:协调者如果中途故障
二、三阶段提交(3PC)
和2PC类似,只是准备阶段只是询问参与者是否可以执行事务,然后预提交阶段和提交阶段分别是执行、提交事务!
补偿性事务
三、补偿事务(TCC)
TCC 指的是