
分布式事务
文章平均质量分 95
分布式事务
程序猿进阶
要做就做第一,就算结果不是第一,也会是一个好成绩。 加油!我的未来不是梦。
展开
-
最大努力通知【分布式事务解决方案】
【1】账户系统调用充值系统接口;【2】充值系统完成支付处理向账户系统发起充值结果通知,若通知失败,则充值系统按策略进行重复通知;【3】账户系统接收到充值结果通知修改充值状态[实时性与数据一致性可以延迟];【4】账户系统未接收到通知会主动调用充值系统的接口查询充值结果[当用户查询状态时,状态为失败时,回查充值系统]发起通知方通过一定的机制最大努力将业务处理结果通知到接收方。具体包括:【1】有一定的消息重复通知机制。因为接收通知方可能没有接收到通知,此时要有一定的机制对消息重复通知。原创 2024-08-02 11:00:00 · 1621 阅读 · 119 评论 -
分布式事务原理【理论篇】
例如,用户信息和订单信息分别在两个 MySQL实例存储,用户管理系统删除用户信息,需要分别删除用户信息及用户的订单信息,由于数据分布在不同的数据实例,需要通过不同的数据库链接去操作数据,此时产生分布式事务。在计算机系统中,更多的是通过计算机控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系型数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。【3】即使从服务器还没有实时同步,从数据库也要返回查询结果,即使是旧数据也需要返回。原创 2024-08-02 05:30:00 · 1078 阅读 · 35 评论 -
基于TCC的分布式事务
分布式的架构中,分布式的事务是一个绕不过的挑战,微服务理念的流行让分布式的问题日益突出。在公司内部, 笔者所接触的管理系统中实际上也存在着分布式事务。这里假设有这三个系统(cim、xfunds、cert)存在客户的同步问题。//cim 系统签约用户(cim本地事务)//新增成功//新增失败,导致和cert系统数据不一致try {//祈祷cert这个接口调用成功。原创 2024-04-20 11:30:30 · 1523 阅读 · 86 评论 -
分布式事务综合案例分析【实用篇】
我们已经了解了四种分布式事务解决方案,2PC【链接】、TCC【链接】、可靠消息最终一致性【链接】、最大努力通知【链接】,每种解决方案我们通过案例开发进行学习,本章节我们结合互联网金融项目中的业务场景,来进行分布式事务解决方案可行性分析。一、系统介绍P2P金融又叫 P2P信贷。其中 P2P是 peer-to-peer 或 person-to-person 的简写,意思是:个人对个人。P2P金融指 个人与个人间的小额借贷交易,一般需要借助电子商务专业网络平台帮助借贷双方确立借贷关系并完成相关交易手续。借原创 2021-04-16 22:46:00 · 5619 阅读 · 1 评论 -
可靠消息最终一致性【本地消息表、RocketMQ 事务消息方案】
一、可靠消息最终一致性事务概述可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图:事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。因此可靠消息最终一致性方案要解决以下几个问题:【1】本地事务与消息发送原创 2021-04-16 22:37:47 · 1342 阅读 · 3 评论 -
TCC 分布式事务解决方案
一、什么是 TCC事务TCC 是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与 Try或者 Commit相反的操作即回滚操作。TM首先发起所有的分支事务的 try操作,任何一个分支事务的 try操作执行失败,TM将会发起所有分支事务的 Cancel操作,若 Try操作全部成功,TM将会发起所有分支事务的 Confirm操作,其中原创 2021-04-16 22:10:54 · 1141 阅读 · 1 评论 -
2PC(两阶段提交)【XA 与 Seata方案】
一、概述2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(Commit phase),2指两个阶段,P指准备阶段,C指提交阶段。整个事务过程由事务管理器和参与者组成,事务管理器负责决策整个分布式事务的提交和回滚,事务参与者负责自己本地事务的提交和回滚。在计算机中部分关系数据库如 Oracle、MySQL 都支持两阶段提交协议。下面是计算机数据库进行两阶段提交的说明:【1】准备阶段(Pre原创 2021-04-16 22:04:02 · 1597 阅读 · 0 评论