当前位置:网站首页>什么是分布式事务
什么是分布式事务
2022-08-09 06:44:00 【悬浮海】
全文:Java-微服务下的分布式事务介绍及其解决方案-目录导航
第一步:想要去解决一个问题,首先要知道问题是什么,所以先看:什么是分布式事务
一、什么是分布式事务
弄清楚什么是分布式事务之前,先来看一下什么是本地事务?
本地事务就是用关系数据库来控制事务,关系数据库通常都具有ACID特性,传统的单体应用通常会将数据全部存储在一个数据库中,会借助关系数据库来完成事务控制。(我们所熟知的MySQL事务)
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,以上是百度百科的解释。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证数据库中的数据一致性。
(1)在分布式系统中一次操作由多个系统协同完成,这种一次事务操作涉及多个系统通过网络协同完成的过程称为分布式事务。这里强调的是多个系统通过网络协同完成一个事务的过程,并不强调多个系统访问了不同的数据库,即使多个系统访问的是同一个数据库也是分布式事务,如下图
(2)另外一种分布式事务的表现是,一个应用程序使用了多个数据源连接了不同的数据库,当一次事务需要操作多个数据源,此时也属于分布式事务,当系统作了数据库拆分后会出现此种情况。
上面两种分布式事务表现形式第一种用的最多
二、事务的ACID特性
2.1、原子性(A)
所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。
2.2、一致性(C)
事务的执行必须保证系统的一致性,就拿转账为例,A有500元,B有300元,如果在一个事务里A成功转给B50元,那么不管并发多少,不管发生什么,只要事务执行成功了,那么最后A账户一定是450元,B账户一定是350元。
2.3、隔离性(I)
所谓的隔离性就是说,事务与事务之间不会互相影响,一个事务的中间状态不会被其他事务感知。
2.4、持久性(D)
所谓的持久性,就是说一单事务完成了,那么事务对数据所做的变更就完全保存在了数据库中,即使发生停电,系统宕机也是如此。
边栏推荐
猜你喜欢
Use of PlantUML plugin in idea
2022-08-08: Given an array arr, it represents the height of the missiles that will appear in order from morning to night.When the cannon shoots missiles, once the cannon is set to shoot at a certain h
Redis 2 - 高级
Error jinja2.exceptions.UndefinedError: 'form' is undefined
字节跳动笔试题2020 (抖音电商)
抗菌药物丨Toronto Research Chemicals 天冬酰胺D
mongo+ycsb性能测试及线程数分析
longest substring without repeating characters
IQ Products CMV Brite Turbo试剂盒的原理
The working principle of the transformer (illustration, schematic explanation, understand at a glance)
随机推荐
shardingsphere数据分片配置项说明和示例
A test engineer with an annual salary of 35W was laid off. Personal experience: advice that you have to listen to
中英文说明书丨CalBioreagents 醛固酮单克隆抗体
io.lettuce.core。RedisCommandTimeoutException命令超时
MongDb query method
Altium designer软件常用最全封装库,包含原理图库、PCB库和3D模型库
AD的library中 库文件后缀有.intlib .schlib .pcblib 的区别
Mysql实操
dp学习笔记
思维方法 解决问题的能力
P6 ali machine test of 2020 Fibonacci number
移远EC20 4G模块拨号相关
cut命令的使用实例
Zero shift of leetcode
Example of using the cut command
VS2019 common shortcut keys
leetcode 之 零移位
普罗米修斯原理及节点发布
SIGINT,SIGKILL,SIGTERM信号区别,各类信号总结
IQ Products CMV Brite Turbo试剂盒的原理