seata 下载及安装
分布式事务 参考文章:
分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html
分布式事务原理及解决方案案例https://www.cnblogs.com/yizhiamumu/p/16662412.html
Seata术语
官网地址:https://seata.io/zh-cn/docs/overview/terminology.html
在了解Seata之前,我们先来了解一下 Seata 几个关键的概念:
TC(Transaction Coordinator)事务协调者:
维护全局和分支事务的状态,驱动全局事务提交或者回滚
TM(Transaction Manager) 事务管理者: 发起者,同时一个RM的一种,定义全局事务的范围,开始全局事务,提交或回滚全局事务。
RM(Resource Manager) 资源管理器: 参与事务的微服务,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚
Seata 2PC
一阶段: 业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段: 提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿。
一阶段本地事务提交前,需要确保先拿到 全局锁 。拿不到全局锁 ,不能提交本地事务。
拿全局锁的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。
在数据库本地事务隔离级别读已提交或以上的基础上,Seata(AT 模式)的默认全局隔离级别是 读未提交
如果应用在特定场景下,必需要求全局的 读已提交 ,目前 Seata 的方式是通过 SELECT FOR UPDATE 语句的代理。
Seata执行流程分析:
每个RM 使用 DataSourceProxy链接数据路,目的是使用 ConnectionProxy,使用数据源和数据代理的目的是在第一阶段将 undo和业务数据放在一个本地事务中提交,这样就保存了只要有业务操作就一定会有dudo日志,
在第一阶段中,undo存放了数据修改前后修改的值,是为了事务回滚做好准备,在第一阶段完成就已经将分支事务提交了,也就释放了锁资源。
TM开启全局事务开始,将XID全局事务ID放在事务上下文中,通过feign调用将XID传入下游服务器中,每个分支事务将自己的 Branch ID分支事务ID和XID进行关联,
在第二阶段全局事务提交,TC会通知各个分支参与者提交分支事务,在第一阶段已经提交了分支事务,在这里各参与者只需要删除undo即可,并且可以异步执行。
如果某一个分支事务异常了,第二阶段全局事务回滚操作,TC会通知各个分支参与者回滚分支事务,通过XID和Branch-ID找到对应的回滚日志,通过回滚日志生成的反向SQL执行,完成分支事务回滚到之前的状态。
Seata 下载安装
下载地址:https://github.com/seata/seata/releases
解压后找到conf目录
我们在启动seata之前,首先要启动nacos,其实也很简单,只需要下载nacos后启动就行,不知道nacos怎么操作的看这里的介绍nacos基础介绍,启动好之后,我们再来启动seata,bin目录下seata-server.bat
如果我们看到8091端口在监听,并且在nacos看到服务注册上去了,就表示我们seata启动成功了
seata 下载及安装的更多相关文章
- UE4新手引导之下载和安装虚幻4游戏引擎
1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...
- git-2.10.2-64-bit介绍&&git下载&&git安装教程
Git介绍 分布式:Git系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具. 保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态:可以在该保存点将 ...
- JDK下载、安装、配置环境变量笔记
自己总是在下载.安装.配置JDK的环境变量,但是这些需要的专业知识并不难,但有很多细节很重要,总是记不住,而且这些细节一旦出错影响还是很严重的,在网上查到的信息很多都比较零散,而且讲解得也不是很详细, ...
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...
- 如何下载和安装CocoaPods
朋友自己学习了一段时间就去公司实习了去了之后公司用的是CocoaPods,他一脸茫然的向我求助,我这才想起来写着一遍为了帮助更多的朋友 CocoaPods是什么? 当你开发iOS应用时,会经常使用到很 ...
- CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?
CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...
- freeCAD下载与安装
官方安装: freeCAD稳定版 freeCAD官方提供了几个稳定版本供开发者使用: Windows (XP, Vista and 7, 32 and 64bits), Mac OS X (Lion ...
- Android中下载、安装和卸载(原)
应用场景:在检查版本更新的时候经常需要从服务器端下载然后安装到手机中 使用工具: XUtils,这个开源的框架真的是需要花大把时间去阅读和理解的,十分有用的,on the way ! fighting ...
- MySQL下载、安装及启动
介绍 Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之 ...
- MongoDB的下载与安装
MongoDB的下载与安装 一.简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.MongoDB 是一个介于关系 ...
随机推荐
- yb课堂实战之首页banner轮播图和视频详情接口开发 《四》
开发轮播列表接口 VideoMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCT ...
- 可视化学习:如何用WebGL绘制3D物体
在之前的文章中,我们使用WebGL绘制了很多二维的图形和图像,在学习2D绘图的时候,我们提过很多次关于GPU的高效渲染,但是2D图形的绘制只展示了WebGL部分的能力,WebGL更强大的地方在于,它可 ...
- Django+forms+html
在Django中,Form类通常通过继承django.forms.Form或django.forms.ModelForm来定义.当你定义一个表单类时,通常使用Form或ModelForm类,并使用各种 ...
- CRC 循环冗余效验
CRC循环冗余效验 利用多项式 x6 + x4 + x3,实际为使用模2除法来做的加密 常用crc多项式有 名称 生成多项式 数值式 简记式 标准引用 CRC-4 x4+x+1 0x1'3 0x3 I ...
- 【Mybatis + Spring】 Mybatis - Spring 结合
环境搭建 EvBuild 软件环境准备 - MySQL 5.0 + - IDEA 2018 + - JDK1.8 + 依赖包相关 - Junit单元测试 - JDBC驱动 - Mybatis 组件 - ...
- 【微信小程序】01 入门
官方开发文档: https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 需要去微信公众平台注册开发账号: mp. ...
- 【Vue】Re23 组件封装
视频地址: https://www.bilibili.com/video/BV15741177Eh?p=119 common.css /* 演示案例是base.css */ body { paddin ...
- 【JDBC】Extra03 PostgreSQL-JDBC
PostgreSQL的JDBC实现: <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> <d ...
- Jax框架 —— 如何在没有GPU和TPU的设备上debug代码 —— 在CPU上使用GPU仿真设置 —— Jax框架在多卡设备上的自动并行特性的仿真体验
Jax计算框架是Google用来取代Tensorflow的新一代计算框架,这个框架使用类似pytorch的技术,但是在pytorch技术之上加入了更加强大的技术,但是这也导致该框架使用起来要比pyto ...
- 2023.4.12.汇报.pptx
6月份汇报想法 8月份写论文 ==========================================================