7 Seata简介

news2024/11/17 21:37:02

Seata-Server安装

分布式事务解决方案

2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段。

1. 准备阶段(Prepare phase)
2. 提交阶段(commit phase)

举例:比如说相亲对象两个人去吃饭,店老板要求,先付钱在吃饭,这是男女双方提出了AA,也就是说只有男女双方都付钱,才能落座吃饭,但是只要两个人中有一个不统一付款就不能落座吃饭。

  • 准备阶段:老板要求男方付款,男方付款。老板要求女方付款,女方付款
  • 提交阶段:老板出餐,两人纷纷落座

其实此例子就形成了一个事务,如果男女双方有一个人拒绝付款,那么老板就不会出餐,并且会把已收取的钱原路退回。

这个事务过程是由事务管理器参与者组成的,店老板就是事务管管理器男女双发就是参与者,事务管理器决策整个分布式事务在计算机中关系数据库支持的两阶段提交协议:

  • 准备阶段(Prepare phase):事务管理器给每个参与者发送Prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo日志,此时事务没有提交
  • (Undo日志是记录修改前的数据,用于数据库回滚,Redo日志是记录修改后的数据,用于提交事务后写入数据文件)
  • 提交阶段(commit phase):如果事务管理器收到了参与者的执行失败或者超时消息时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据事务管理器的指令执行提交或者回滚操作,并释放事务处理过程中使用的资源。

具体步骤图例:

成功:

在这里插入图片描述

失败:

在这里插入图片描述

Seata简介

官网:https://seata.io/zh-cn/docs/overview/what-is-seata.html

概念:Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

在这里插入图片描述
在我们的微服务系统中,对应业务被对应的拆分成独立模块,在官方提供的架构图中,我们可以看出当前是三个服务:

  • 仓储服务:对给定的商品进行增删操作记录数量
  • 订单服务:根据采购者的需求创建订单
  • 账户服务:从用户账户中扣除余额、积分等

在这套架构中,用户下单购买商品的业务,就需要三个服务来完成,每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题就没办法保证,Seata就是来进行解决这种问题的解决方案。

Seata术语

官网地址:https://seata.io/zh-cn/docs/overview/terminology.html

要了解Seata,首先我们要了解一下Seata的几个关键的概念:

  • TC (Transaction Coordinator) - 事务协调者

    维护全局和分支事务的状态,驱动全局事务提交或回滚。

  • TM (Transaction Manager) - 事务管理器(发起者,同时也是RM的一种)

    定义全局事务的范围:开始全局事务、提交或回滚全局事务。

  • RM (Resource Manager) - 资源管理器(每个参与事务的微服务)

    管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/389157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模电基础(2)半导体二极管

1.二极管的组成二极管:将PN结封装起来,引出两个电极就构成了半导体二极管。二极管的常见结构包括:点接触型(图a),面接触型(图b),平面型(图c)。 点…

世界顶级五大女程序媛,不仅技术强还都是美女

文章目录1.计算机程序创始人:勒芙蕾丝伯爵夫人2.首位获得图灵奖的女性:法兰艾伦3.谷歌经典首页守护神:玛丽莎梅耶尔4.COBOL之母:葛丽丝穆雷霍普5.史上最强游戏程序媛-余国荔说起程序员的话,人们想到的都会是哪些理工科…

java基础-标识符命名规范和数据类型

标识符 1.什么是标识符? Java中变量、方法、类等要素命名时使用的字符序列,称为标识符。 技巧:凡是自己可以起名字的地方都叫标识符。比如:类名、方法名、变量名、包名、常量名等 2.标识符的命名规则 1.标识符由26个英文字母大小…

LQB手打,18B20读取温度,放大一百倍

https://blog.csdn.net/qq_45225613/article/details/110303632?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167798888716800215065334%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id167798888716800215065334&biz_id0&a…

RCNN

1.RCNN 1.1算法流程 一张图像生成1k~2k个候选区域(使用Selective Search方法)对每个候选区域,使用深度网络提取特征特征送入每一类的SVM分类器,判断是否属于该类使用回归器精细修正候选框位置 1.候选区域的生成 利用selective Search算法通过图像分割的方…

【erlang】入门篇

欢迎入坑Erlang,关键字: 函数式,高并发,容错,热更新,分布式 安装 erlang的安装非常简单,直接去官网下载编译好的二进制安装包即可。需要注意的是文件名格式是OTP_平台_版本.后缀,其…

2021天梯赛真题题解 L1-3 强迫症 (10 分) C语言版本 整数转换为字符串数组

L1-3 强迫症 (10 分) 题目描述 小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于…

一文说透容器跨主机网络

文章目录一、Flannel1、UDP2、VXLAN(1)VXLAN核心流程总结(2)VTEP隧道通信流程详解【1】封装 inner Ethernet header(依据VTEP IP查MAC)【2】设置VNI(标识数据包应该交给那个处理设备&#xff09…

AI绘画第二步,抄作业复现超赞的效果!

上一篇,讲了如何安装AI绘画软件,但是装完后发现生成效果很渣!而网上那些效果都很赞。真的是理想很丰满,现实很骨感。今天就是来聊聊如何抄作业,最大程度的还原那些超赞的效果。换一种说法就是,教大家如何使…

spark sql(一)源码分析sql解析流程

spark sql解析sql主要基于Catalyst框架,它将复杂的sql解析分为很多的阶段,每个阶段基本都有专属的工具类和扩展接口,最终实现将sql转换为DataFrame或RDD任务的功能。如果对于这些中间阶段和工具类没有一个整体概念性的了解,那阅读…

JUC并发编程与源码分析笔记11-Java对象内存布局和对象头

先从阿里及其它大厂面试题说起 你觉得目前面试,你还有那些方面理解的比较好,我没问到的,我说了juc和jvm以及同步锁机制那先说juc吧,说下aqs的大致流程cas自旋锁,是获取不到锁就一直自旋吗?cas和synchronized区别在哪…

国内的PMP考试通过率高达97%?

自认为是虚高,虽然国人在考试方面的确独树一帜的强,应该也没有这样夸张。 如果自学,大概是50%,如果有老师教,那大概是60%到80%,还是比较高的。 为什么自学那么低?除了自身的自制力的问题&…

【编程基础之Python】9、Python中的变量

【编程基础之Python】9、Python中的变量Python中的变量变量的定义和赋值变量的命名规范变量的类型变量的作用域变量的赋值特殊的变量删除变量总结Python中的变量 在Python中,变量是用来存储数据的一种方式。Python是一种动态类型语言,因此在声明变量时不…

JWT利用在ctfhub-easy_login拿到flag

目录 什么是JWT? jwt由三个部分组成:header.payload.signature header部分: payload部分:声明 signature部分: JWT验证过程: ctfhub-easy_login 目的:拿到flag 过程分析以及实操&#x…

阿里云轻量服务器--Docker--Nacos安装(使用外部Mysql数据存储)

前言:docker 安装nacos 如果不设置外部的mysql 默认使用内嵌的内嵌derby为数据源,这个时候如果,重新部署nacos 则会造成原有数据丢失情况; 1 默认安装的nacos 启动后使用的是内嵌的存储: 2 使用外部mysql 作为存储&a…

Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法

关于/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28’ not found出现报错,建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考! 环境 # uname -a Linux Ubuntu 5.4.0-144-generic #161~18.04.…

[1.4]计算机系统概述——操作系统的体系结构

第一章 计算机系统概述 操作系统的体系结构 大内核/单内核/宏内核微内核 通过之前的学习,我们知道计算机系统的层次结构是这样的。 但是操作系统的内部其实还可以再进一步地划分。 一部分是内核的功能,一部分是非内核的功能。 操作系统最核心的功能&…

计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…

【云原生】Trace、Metrics、Logging 选型

背景分布式追踪的起源自从微服务的兴起开始,整个系统架构开始变得极为庞大和复杂,但是服务之间的调用关系,调用消耗时间等等信息却依然是半黑盒的状态。为了能够将调用的链路进行串联,将系统的各种指标数据展示出来以使得系统的链…

哈希->模拟实现+位图应用

致前行路上的人: 要努力,但不要着急,繁花锦簇,硕果累累都需要过程! 目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1概念介绍: 1.1.2 unordered_map的接口说明 1.2unordered_set 1.3常见面试题oj…