IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 分布式事务Seata(一) -> 正文阅读

[大数据]分布式事务Seata(一)

分布式事务是源于微服务的,服务之间的存在调用,且整个调用链路上存在多处写数据库表的行为,那么,分布式事务就是保证这些操作要么全部成功,要么全部失败。截屏2022-03-29 18.31.55

分布式事务追求的一致性(业务特性

  • 强一致性:任何一次读都能读到某个数据的最近一次写的数据(要求最高)
  • 弱一致性:数据更新后,如果能容忍后续访问只能访问到部分或者全部访问不到,则是弱一致性(绝大多数的业务场景都是不允许的)
  • 最终一致性:不保证在任意时刻数据都是完整的(状态一致),但是,随着时间的推移,数据总是会达到一致的状态。(异步操作)

常用的分布式事务的解决方案:

  1. 两阶段提交:指的是分两步提交:存在一个中央协调器负责协调各个分支的事务截屏2022-03-29 18.38.11

  2. 本地消息表:是将需要分布式处理的任务通过消息日志的方式来异步执行

    截屏2022-03-29 18.47.04

2.分布式事务解决方案 Seata AT 模式

2.1 概述

Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,官网 http://seata.io/zh-cn/

2.2 Seata的过程模型

  • Seata 中三个重要的角色:TC、TM、RM

    截屏2022-03-29 18.52.55

2.3 Seata的事务模型

  • Seata定义了全局事务的框架,全局事务定义为若干分支事务的整体协调

    截屏2022-03-29 18.54.53

2.4 Seata AT 模式的整体机制

  • AT对业务代码完全无侵入性,使用非常简单,改造成本低,我们只需要关注自己的业务sql,Seata会通过分析我们的业务sql,反向生成回滚数据截屏2022-03-29 19.00.30

2.5 Seata AT模式工作示例

  • 两个全局事务tx1和tx2,分别对a表的m字段进行更新操作,m的初始值为1000

    TB1zaknwVY7gK0jSZKzXXaikpXa-702-521

    • 一阶段本地事务提交前,需要确保先拿到全局锁

    • 拿不到全局锁,不能提交本地事务

    • 拿全局锁的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。

  • 如果tx1的二阶段全局回滚,则tx1需要重新获取该数据的本地锁,进行反向补偿更新操作,实现分支回滚。TB1xW0UwubviK0jSZFNXXaApXXa-718-521

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:32:03  更:2022-03-30 18:32:11 
 
开发: 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 7:40:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码