云数据库虚拟主机(云服务器云虚拟主机)
233
2022-07-14
我也是第一次知道“分布式事务”,所以我也在网络上搜索了一下,了解了一下什么是分布式事务。大致知道了是什么,今天就分享给大家一些知识点,大家一起学习,也让想从事这方便的人了解分布式事务,从而更好的掌握这项技能。
什么是分布式事务?
指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。
分布式系统特点
1、CAP理论
在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)3 个要素最多只能同时满足两个,不可兼得。其中,分区容忍性又是不可或缺的。
2、BASE 理论
核心思想:
1.基本可用(BasicallyAvailable):指分布式系统在出现故障时,允许损失部分的可用性来保证核心可用。
2.软状态(SoftState):指允许分布式系统存在中间状态,该中间状态不会影响到系统的整体可用性。
3.最终一致性(EventualConsistency):指分布式系统中的所有副本数据经过一定时间后,最终能够达到一致的状态。
Seata分布式事务方案
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。每个RM使用DataSourceProxy链接数据路,目的是使用ConnectionProxy,使用数据源和数据代理的目的是在第一阶段将undo_log和业务数据放在一个本地事务提交,这样就保存了只要有业务操作就一定有undo_log;在第一阶段undo_log中存放了数据修改前后修改后的值,为事务回滚做好准别,所以第一阶段完成就已经将分支事务提交了,也就释放了锁资源,TM开启全局事务开始,将XID全局事务ID放在事务上下文中,通过feign调用也将XID传入下游分支事务,每个分支事务将自己的Branch ID 分支事务ID与XID关联;第二阶段全局事务提交,TC会通知各分支参与者提交分支事务,在第一阶段就已经提交了分支事务,这里各参与者只需要删除undo_log即可,并且可以异步执行,第二阶段很快可以完成。如果某一个分支事务异常,第二阶段就全局事务回滚操作,TC会通知各分支参与者回滚分支事务,通过XID和Branch-ID找到对应的回滚日志,通过回滚日志生成的反向SQL并执行,以完成分支事务回滚到之前。
什么是分布式事务?其实就是一种数据的统一性,相信从事这方面的人很了解。现在网络发达,这方面的人才是很紧缺的,网络后台都是需要数据生成的,所以分布式事务就是将在后台的小操作都统一起来,都成功。
发表评论
暂时没有评论,来抢沙发吧~