本文介绍: 举个例子,在通信的场景下,DTP的作用相当于定义了通信中需要有发送方和接受方,要求这两方都需要有发送和接收的能力,要求通过一系列的通信方式使得他们能正常通话。而2PC/3PC则是相当于定义了具体的通信逻辑,比如TCP三次握手和IP协议等等。
一、分布式事务
事务指的是一组操作,要么全部成功,要么全部失败。事务有四个特性ACID,具体涵义参考数据库原理这篇博客
本地事务可依赖数据库本身提供的事务特性来实现,因此以下逻辑可以控制本地事务:
但是在分布式环境下,会变成下边这样:
可以设想,当远程调用让李四增加金额成功了,由于网络问题远程调用并没有返回,此时本地事务提交失败就回滚了张三减少金额的操作,此时张三和李四的数据就不一致了。
二、分布式事务的解决方案
1. 全局事务
(1)DTP模型
(2) 两阶段提交协议(2PC)
原理
二阶段提交的缺点
(3)三阶段提交协议(3PC)
原理
2. 基于可靠消息服务
3. 最大努力通知
4. TCC
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。