开发者社区> 问答> 正文

什么是分布式事务?

什么是分布式事务?

展开
收起
kun坤 2020-04-23 15:41:41 507 0
1 条回答
写回答
取消 提交回答
  • 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

    简单的画个图好让大家理解一下,拿下单减库存来说举例:当系统的业务量很小时,“一站式”的系统完全可以满足现有业务需求,所有的业务都共用一个数据库,整个下单流程或许只用在一个方法里同一个事务下操作数据库即可。

    此时所有操作都在一个事务里,要么全部提交,要么全部回滚 。

    但随着业务量不断增长,“一站式”系统渐渐扛不住巨大的流量,就需要对数据库进行分库分表,将业务服务化拆分(SOA),就会分离出了订单中心、用户中心、库存中心。而这样就造成业务间相互隔离,每个业务都维护着自己的数据库,数据的交换只能进行RPC调用。

    用户再下单时,创建订单和扣减库存,需要同时对订单DB和库存DB进行操作。两步操作必须同时成功,否则就会造成业务混乱,可此时我们只能保证自己服务的数据一致性,无法保证调用其他服务的操作是否成功,所以为了保证整个下单流程的数据一致性,就需要分布式事务介入。

    在说分布式事务之前,先回忆一下事务的基本概念:事务是一个程序执行单元,里面的所有操作要么全部执行成功,要么全部执行失败。

    一个事务有四个基本特性,也就是我们常说的(ACID)。

    Atomicity(原子性) :事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败。

    Consistency(一致性) :务执行前后,数据从一个状态到另一个状态必须是一致的(A向B转账,不能出现A扣了钱,B却没收到)。

    Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰。

    Durablity(持久性) :事务完成后,对数据库的更改是永久保存的,不能回滚。

    上面这些知识点都是反反复复念叨的概念,面试必背的东西。

    https://mp.weixin.qq.com/s/08ixco06hMw99365vDiM0w

    2020-04-23 15:43:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
GTS-分布式事务全新解决方案 立即下载
基于HLC的分布式事务实现深度剖析 立即下载
GTS内刊 立即下载