广州专业网站制作公司,artdialog wordpress主题,wordpress login_head,一般拍卖会在什么网站做分布式事务#xff0c;指的就是在分布式的系统里面完成一些事务#xff0c;下文介绍了分布式事务的用途是什么#xff1f;分布式事务产生的情景有哪些等问题。
一、分布式事务的用途是什么#xff1f;
分布式事务处理 (TP) 系统旨在协助在分布式环境中跨异类的事务识别资…分布式事务指的就是在分布式的系统里面完成一些事务下文介绍了分布式事务的用途是什么分布式事务产生的情景有哪些等问题。
一、分布式事务的用途是什么
分布式事务处理 (TP) 系统旨在协助在分布式环境中跨异类的事务识别资源的事务。在分布式 TP 系统的支持下应用程序可以将不同的活动合并为一个事务性单元这些活动包括从“消息队列”队列检索消息、将消息存储在 Microsoft SQL Server 数据库中、将所有现有的消息引用从 Oracle Server 数据库中移除等等。因为分布式事务跨多个数据库资源故强制 ACID 属性维护所有资源上的数据一致性是很重要的。
二、分布式事务产生的情景
1.跨JVM进程产生分布式事务 典型的场景就是微服务架构微服务之间通过远程调用完成事务操作。比如订单微服务和库存微服务下单的同时订单微服务请求库存微服务减少库存。
2.跨数据库实例产生分布式事务 单体系统访问多个数据库实例当单体系统需要访问多个数据库实例时就会产生分布式事务。比如用户信息和订单信息分别在两个MySQL实例存储用户管理系统删除用户信息需要分别删除用户信息及用户的订单信息由于数据分布在不同的数据实例需要通过不同的数据库链接去操作数据此时产生分布式事务。
3.多服务访问同一个数据库实例 订单微服务和库存微服务即使访问同一个数据库也会产生分布式事务原因就是跨JVM进程两个微服务持有了不同的数据库链接进行数据库操作此时产生分布式事务。
分布式事务的解决方案
一、两阶段提交2PC
两阶段提交Two-phase Commit2PC通过引入**协调者Coordinator**来协调参与者的行为并最终决定这些参与者是否要真正执行事务。
准备阶段
协调者询问参与者事务是否执行成功参与者发回事务执行结果。
提交阶段
如果事务在每个参与者上都执行成功事务协调者发送通知让参与者提交事务否则协调者发送通知让参与者回滚事务。
需要注意的是在准备阶段参与者执行了事务但是还未提交。只有在提交阶段接收到协调者发来的通知后才进行提交或者回滚。
二、补偿事务TCC
TCC 其实就是采用的补偿机制其核心思想是针对每个操作都要注册一个与其对应的确认和补偿撤销操作。它分为三个阶段 1)、Try 阶段主要是对业务系统做检测及资源预留.
2)、Confirm 阶段主要是对业务系统做确认提交Try阶段执行成功并开始执行 Confirm阶段时默认 Confirm阶段是不会出错的。即只要Try成功Confirm一定成功。
3)、Cancel 阶段主要是在业务执行错误需要回滚的状态下执行的业务取消预留资源释放。
优点 跟2PC比起来实现以及流程相对简单了一些但数据的一致性比2PC也要差一些
缺点 缺点还是比较明显的在2,3步中都有可能失败。TCC属于应用层的一种补偿方式所以需要程序员在实现的时候多写很多补偿的代码在一些场景中一些业务流程可能用TCC不太好定义及处理。
相应的还有很多模式如3PC、AT 模式、Saga 模式、XA 模式 详情可见 https://blog.csdn.net/qq_45738250/article/details/126214367 https://blog.csdn.net/zengqingfa123/article/details/127465218
通常都是使用seata事务架构来处理分布式事务其提供了AT、TCC、Saga、XA(在2PC之上使用的)四种事务模式解决方案,我学习是在B站尚硅谷的springcloud最后几集进行学习的有兴趣可以去学习一下seata也是目前比较常用的用来处理分布式事务的