《分布式事务系列教程-第一章-什么是分布式事务》

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 《分布式事务系列教程-第一章-什么是分布式事务》,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

第一章-什么是分布式事务

一、分布式事务概述

1.1 什么是分布式事务

1.1.1 单服务多数据源

在这里插入图片描述

在单个系统中,完成某项业务需要操作多个数据源,并且操作时要么全部成功要么全部失败,由于数据是存储在不同的数据库中,因此都有对应的连接(Connection),不同的连接会开启不同的事务。使用传统的解决方案无法保证两个事务同时ACID

例如上图的电商系统:电商系统在下订单的时候必须要对应的减少一个库存,不可能订单已经下好了,结果由于某种原因库存没有减少,或者库存已经减少了,但是订单数却没有加。因此我们需要将**“下订单减库存”**看成是一个整体,要么一起成功,要么一起失败。

1.1.2 多服务单数据源

在这里插入图片描述

在多个系统(微服务)中,完成某项业务操作同一个数据源,并且操作时要么全部成功要么全部失败,数据是存储在同一个数据库,但是由于系统不同,下订单微服务下单的时候,会新创建一个连接(Connection),那么此时远程调用库存微服务的时候,也会开启一个新的Connection,不同的Connection都有各自独立的开启事务、提交/回滚事务等操作,无法保证两个事务同时ACID;

分析过后发现也会出现下订单减库存失败,或者库存减成功下订单出现异常等。

1.1.3 多服务多数据源

在这里插入图片描述

在多个系统中,完成某个业务操作多个数据源(主流的分布式架构),并且操作时要么全部成功要么全部失败,数据存储在不同的数据库,业务也存在不同的系统中,当订单微服务下订单时会有新的Connection,与此同时调用远端的库存微服务减库存时,库存微服务必然会创建一个新的Connection用于减库存操作,因此无法保证多个事务同时ACID;

tips:以上三种情况都属于分布式事务范畴

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131766.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!