分布式事务(详细资料)

1.什么是分布式事务:

        分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理服务器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次打的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,切属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。

2.分布式事务的产生原因

2.1、数据库分库分表

        当数据库表单一年产生的数据超过1000万,name就要考虑分库分表,具体分库分表的原理再次不做解释,以后有空详细说,简单的说就是原来的一个数据库编程了多个数据库。这时候,如果一个操作及访问01库,有访问02库,而且要给保证数据的一致性,那么就要用到分布式事务。

2.2、应用SOA化

所谓的SOA化,就是业务的服务化。比如原来单机支撑整个电商网站,现在对整个网站进行拆解,分离出了订单中心、用户中心、库存中心。对于订单中心,有专门的数据库存储订单信息,用户中心也有专门的数据库库存进行操作,name就会设计到订单数据库和库存数据库,为了保证数据一致性,就需要用到分布式事务。

以上两种情况表象不同,但是本质相同,都是因为要操作的沪剧苦变多了!

3.事务的ACID特性

3.1、原子性(A)

所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。

3.2、一致性(C)

事务的执行必须保证系统的一致性,就那转正为例,A有500元,B有300元,如果在一个事务李A成功转给B50元,name不管并发多少,不管发生什么,只要事务执行成功了,那么最后A郑虎一定是450元,B账户一定是350元。

3.3、隔离性(I)

所谓的隔离性就是说,事务与事务之间不会互相影响,一个事务的中间状态不会被其他事务感知。

3.4、持久性(D)

所谓的持久性,就是说一单事务完成了,name事务对数据所做的变更就完全保存在了数据库中,即是发生停电,系统宕机也是如此。

4、分布式事务的应用场景

4.1、支付

最经典的场景就是支付了,一笔支付,是对卖家账户进行扣款,同时对卖家账户进行价钱,这些操作必须在一个事务里执行,要么全部成功,要么全部失败。而对于卖家账户属于买家中心,对应的事卖家数据库,二卖家账户属于卖家中心,对应的是卖家数据库,对不同数据库的操作必然需要引入分布式事务。

4.2、在线下单

卖家在带你上平台下单,旺旺会涉及到两个动作,一个是扣库存,第二个是更新订单状态,库存和订单一般属于不同的数据库,需要使用分布式事务保证数据一致性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值