| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 分布式事务 -> 正文阅读 |
|
[Java知识库]分布式事务 |
本地事务特征本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:ACID 事务的隔离级别1.读未提交(Read uncommitted): 这种事务隔离级别下,select语句不加锁。 此时,可能读取到不一致的数据,即“读脏 ”。这是并发最高,一致性最差的隔离级别。 2.读已提交(Read committed): 可避免 脏读 的发生。 在互联网大数据量,高并发量的场景下,几乎 不会使用 上述两种隔离级别。 3.可重复读(Repeatable read): MySql默认隔离级别。 可避免 脏读 、不可重复读 的发生。 4.串行化(Serializable ): 可避免 脏读、不可重复读、幻读 的发生。 不可重复读和幻读是初学者不易分清的概念,总的来说,解决不可重复读的方法是 锁行,解决幻读的方式是 锁表。 分布式事务分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:
在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。例如电商行业中比较常见的下单付款案例,包括下面几个行为:
完成上面的操作需要访问三个不同的微服务和三个不同的数据库。 Seata的架构Seata事务管理中有三个重要的角色:
配置TC地址配置application.yml
XA模式XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。 两阶段提交XA是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。 一阶段:
二阶段:
Seata的XA模型RM一阶段的工作: ① 注册分支事务到TC ② 执行分支业务sql但不提交 ③ 报告执行状态到TC TC二阶段的工作:
RM二阶段的工作:
优缺点XA模式的优点是什么?
XA模式的缺点是什么?
实现XA模式Seata的starter已经完成了XA模式的自动装配,实现非常简单,步骤如下: 1)修改application.yml文件(每个参与事务的微服务),开启XA模式:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:20:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |