![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式事务
文章平均质量分 55
何事忧愁
何事忧愁?
展开
-
分布式事务-本地消息表(异步确保)
本地消息表这种实现方式应该是业界使用最多的,其核心思想是将分布式事务拆分成本地事务进行处理,这种思路来源于eBay工作流程:1、消息生产方,需要额外一个消息表,并记录消息发送状态。消息表和业务数据要在一个事务里提交。也就是说他们要在一个数据库里面。然后消息会经过MQ发送到消息的消费方。如果消息发送失败,会进行重新发送。2、消息消费方,需要处理这个消息,并完成自己的业务逻辑。此时如果本地事务处理成功,表明已经处理成功了,如果处理失败,那么就会重试执行。如果是业务上面的失败,可以给生产方发送一个业务原创 2021-10-04 00:12:01 · 734 阅读 · 0 评论 -
分布式事务-补偿事务(TCC)
TCC(Try-Confirm-Cancel):Try 阶段:尝试执行,完成所有业务检查(一致性),预留必需业务资源(准隔离性)。Confirm 阶段:确认真正执行业务,不作任何业务检查,只使用 Try 阶段预留的业务资源,Confirm 操作满足幂等性。要求具备幂等设计,Confirm 失败后需要进行重试。Cancel 阶段:取消执行,释放 Try 阶段预留的业务资源,Cancel 操作满足幂等性。Cancel 阶段的异常和 Confirm 阶段异常处理方案基本上一致。TCC两阶段提交与.原创 2021-10-04 00:11:43 · 829 阅读 · 0 评论 -
分布式事务-三阶段提交(3pc)
三阶段提交三阶段提交协议在协调者和参与者中都引入超时机制,并且把两阶段提交协议的第一个阶段分成了两步: 询问,然后再锁资源,最后真正提交。三阶段的执行(1)canCommit阶段3PC的canCommit阶段其实和2PC的准备阶段很像。协调者向参与者发送commit请求,参与者如果可以提交就返回yes响应,否则返回no响应(2)preCommit阶段协调者根据参与者canCommit阶段的响应来决定是否可以继续事务的preCommit操作。根据响应情况,有下面两种可能:a) ..原创 2021-10-04 00:11:32 · 512 阅读 · 0 评论 -
分布式事务(二)-两阶段提交(2pc)
XA协议:XA是X/OPEN定义的交易中间件与数据库之间的接口规范(接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等,XA接口函数由数据库厂商提供。两阶段提交协议中,涉及到两种角色一个事务协调者:负责协调多个参与者进行事务投票及提交(回滚)多个事务参与者:即本地事务执行者(1)、投票阶段:协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。参与者将告知协调者自己的决策:统一(事务参与者本地事务执行成功,但未提交)或者取消(本地事务执行故障)。(2)、提交阶段原创 2021-10-04 00:09:11 · 236 阅读 · 0 评论 -
分布式事务-BASE理论
由于CAP中一致性和可用性A无法兼得,EBay的架构师,提出来BASE理论,它是通过牺牲数据的强一致性,来获得可用性。它有以下3种特征:Basically Available(基本可用):分布式系统在出现不可预知故障的时候,允许损失部分可用性,保证核心功能的可用。Soft state(软状态) : 软状态也称为弱状态,和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。Eventually原创 2021-10-04 00:10:42 · 310 阅读 · 0 评论 -
分布式事务(二)-CAP理论基础
CAP理论CAP是 Consistency、Availability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍 性。C: 一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上,从任意结点读取到的数据都 是最新的状态。也就是数据在多个副本节点中保持一致,可以理解成两个用户访问两个系统A和B,当A系统数据有变化时,及时同步给B系统,让两个用户看到的数据是一致的。A:可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错原创 2021-10-04 00:11:22 · 364 阅读 · 0 评论 -
分布式事务(一)-分布式事务概述
本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据 库事务,由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的 事务又被称为本地事务。数据库事务的四大特性 ACID:A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失 败的情况。C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元,原创 2021-10-04 00:10:10 · 99 阅读 · 0 评论