《Spring Cloud学习笔记:分布式事务Seata》

1.分布式事务理论基础

1.1.本地事务

本地事务,也就是传统的单机事务,在传统的数据库事务中,必须要满足ACID四个原则:

1.2.分布式事务

分布式事务,就是指不是在单个服务或单个数据库架构下产生的事务。

  • 分布式事务是指涉及多个独立系统或服务的事务处理,在分布式系统中,不同的服务或应用程序可能被部署在不同的服务器上,这些服务需要协同工作来完成一个事务,事务的每个操作步骤都位于不同的节点上,需要保证事务的ACID与特性。 
  • 在传统的单机环境下,事务处理通常由单一的事务管理器(Transaction Manager)来管理,保证事务的原子性、一致性、隔离性和持久性(ACID),但在分布式系统中,由于存在网络延迟、节点故障等问题,事务处理变得更加困难。

每个微服务的本地事务,也可以称为分支事务,每一个分支事务就是传统的单体事务,多个有关联的分支事务一起就组成了全局事务,但全局事务跨多个服务、跨多个数据库,因此全局事务,即分布式事务并未遵循ACID的原则,归其原因就是参与事务的多个子业务在不同的微服务中,跨越了不同的数据库,虽然每个单独的业务都能在本地遵循ACID,但是它们互相之间没有感知,不知道有人失败了,无法保证最终结果的统一,也就无法遵循ACID的事务特性了,所以,我们必须保证整个全局事务同时成功或失败。 

哪些场景会产生分布式事务?

1. 跨数据源或跨数据库实例的分布式事务

比如有以下两个场景:

  • 单体系统下,同一个系统使用了多个数据库源连接不同的数据库
  • 分布式、微服务系统,各系统服务使用不同的数据库

2. 跨服务,即跨JVM进程的分布式事务

  • 分布式、微服务系统,各系统服务使用不同的数据库或者是同一个数据库,都会产生分布式事务,因为它们使用的是不同的数据库连接和事务管理器 

单体系统会产生分布式事务问题吗? 

  • 会,如果一个单体系统使用了多个数据源连接不同的数据库,也会产生分布式事务问题。 

只有一个库,会产生分布式事务问题吗?

  • 分布式、微服务系统,各系统服务使用不同的数据库,或者是同一个数据库,都会产生分布式事务,因为它们使用的是不同的数据库连接和事务管理器。 

分布式事务举例

  • 在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。

例如电商行业中比较常见的下单付款业务的整体流程,包括下面几个行为:
 

相关推荐

  1. springcloud第4季 springcloud-alibaba之分布式事务seata

    2023-12-30 04:08:05       7 阅读
  2. Seata分布式事务

    2023-12-30 04:08:05       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-30 04:08:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-30 04:08:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-30 04:08:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-30 04:08:05       18 阅读

热门阅读

  1. (二)linux使用docker容器运行mysql

    2023-12-30 04:08:05       46 阅读
  2. StarRocks:快速查询的秘密解析

    2023-12-30 04:08:05       32 阅读
  3. 【Leetcode Sheet】Weekly Practice 21

    2023-12-30 04:08:05       30 阅读
  4. GO基础进阶篇 (六)、I/O流

    2023-12-30 04:08:05       32 阅读
  5. PAT 乙级 1037 在霍格沃茨找零钱

    2023-12-30 04:08:05       35 阅读
  6. GPT技术:人工智能的语言革命

    2023-12-30 04:08:05       39 阅读
  7. idea 如何开启mybatis控制台SQL日志打印

    2023-12-30 04:08:05       43 阅读
  8. C++ 多态详解(14)

    2023-12-30 04:08:05       48 阅读
  9. Bun 安装

    2023-12-30 04:08:05       53 阅读
  10. 鸿蒙Harmony(十)动画

    2023-12-30 04:08:05       33 阅读
  11. 编程笔记 html5&css&js 002 一些基本概念

    2023-12-30 04:08:05       30 阅读
  12. 送你一台云电脑

    2023-12-30 04:08:05       36 阅读