仅四步教你快速接入Seata分布式事务

2023-11-13

简介:

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

本篇文章将以视频与文字介绍的形式,指引你如何整合Seata

本文使用的测试用例是springboot+dubbo整合seata1.1版本,如果您使用的是springcloud请把文中与视频所说的seata-spring-boot-starter版本切换为spring-cloud-alibaba-seata 2.2.0(目前仅支持1.0的seata)版本即可.

注:本篇内容使用的是file配置中心,最简单的入门.如果您想深入了解请访问官网.starter使用file配置中心时默认开启数据源自动代理,数据库使用的是mysql,如若是其它数据库,请访问seata-samples的示例项目,如若没有请加钉钉/qq/微信群交流沟通,springboot支持版本为2.x


特性:

首先我们用到的是Seata的AT模式,该模式的特点就是对业务无入侵式,分二阶段提交.

一阶段: 业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。

二阶段: 提交异步化,非常快速.回滚通过一阶段的回滚日志进行反向补偿

更多介绍请访问:seata.io


正文:

第一步:

首先访问:https://seata.io/zh-cn/blog/download.html

下载我们需要使用的seata服务并启动.

第二步:

在你的数据库中加入undo_log这张表

-- for AT mode you must to init this sql for you business database. the seata server not need it.CREATE TABLE IF NOT EXISTS `undo_log`(    `id`            BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT 'increment id',    `branch_id`     BIGINT(20)   NOT NULL COMMENT 'branch transaction id',    `xid`           VARCHAR(100) NOT NULL COMMENT 'global transaction id',    `context`       VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',    `rollback_info` LONGBLOB     NOT NULL COMMENT 'rollback info',    `log_status`    INT(11)      NOT NULL COMMENT '0:normal status,1:defense status',    `log_created`   DATETIME     NOT NULL COMMENT 'create datetime',    `log_modified`  DATETIME     NOT NULL COMMENT 'modify datetime',    PRIMARY KEY (`id`),    UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)) ENGINE = InnoDB  AUTO_INCREMENT = 1  DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';

第三步:

在你的项目中引入seata依赖(注:1.1.0版本目前需通过oss远程仓库发布,等正式版发布即可直接使用,或者可通过拉取1.1.0的源码进行本地打包使用.)

oss远程仓库:

https://oss.sonatype.org/index.html#view-repositories;snapshots~browsestorage~seata

    <!-- 教程根据快照版录制,正式版发布后请切换正式版依赖 -->    <dependency>      <groupId>io.seata</groupId>      <artifactId>seata-spring-boot-starter</artifactId>      <version>1.1.0</version>    </dependency>

并在你参与其中的项目的application.yml中都加入如下配置(视频内容不方便修改,在配置上请参考图文内容)

seata:   enabled: true   application-id: test  #可自定义   tx-service-group: my_test_tx_group #可自定义#  enable-auto-data-source-proxy: true  #  use-jdk-proxy: false    service:      vgroup-mapping:         my_test_tx_group: default      grouplist:         default: 127.0.0.1:8091#     disable-global-transaction: false   config:      type: file      file:         name: file.conf   registry:      type: file

application.properties参考如下:

seata.enabled=trueseata.application-id=testseata.tx-service-group=my_test_tx_group# seata.enable-auto-data-source-proxy=true# seata.use-jdk-proxy=falseseata.service.vgroup-mapping.my_test_tx_group=defaultseata.service.grouplist.default=127.0.0.1:8091seata.service.enable-degrade=false# seata.service.disable-global-transaction=falseseata.config.type=fileseata.config.file.name=file.confseata.registry.type=file

注:starter1.1.0的自动代理支持属性配置和注解@EnableAutoDataSourceProxy两种方式

第四步:

在您的发起者的接口上加入@GlobalTransactional,并查看server日志以及程序日志进行调试即可.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅四步教你快速接入Seata分布式事务 的相关文章

  • Windows下Seata配置启动

    此为个人笔记 xff0c 看了网上其他人的配置 xff0c 仅仅用于记录 1 首先需要下载安装包与源码 xff0c 俩者版本需一致 https github com seata seata releases 2 创建一个seata 数据库
  • Windows下seata报错为can not register RM,err:can not connect to services-server的解决办法,亲测有效。

    nacoc下的服务 xff1a 点开seata的TC服务看一下里面的地址 xff0c 左下角为你该服务的ip地址 上图我的ip地址是我目前在用的校园网地址也就是你的桌面右下角的网络地址 我之前报错的原因呢是因为他这里的默认的ip是我之前虚拟
  • RPC框架dubbo架构原理及使用说明

    一 Dubbo是什么 官方定义 DUBBO是一个分布式服务框架 致力于提供高性能和透明化的RPC远程服务调用方案 是阿里巴巴SOA服务化治理方案的核心框架 每天为2 000 个服务提供3 000 000 000 次访问量支持 并被广泛应用于
  • docker配置seata分布式事务并注册至nacos

    Docker配置分布式事务Seata并注册到Nacos服务中心 Docker常用基础命令 docker ps 查询当前服务器的服务 docker images 查看服务下载的镜像 docker ps a 查看所有的服务 包含未开启的服务 d
  • 微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务

    原文地址 http skaka me blog 2016 04 21 springcloud1 不同于单一架构应用 Monolith 分布式环境下 进行事务操作将变得困难 因为分布式环境通常会有多个数据源 只用本地数据库事务难以保证多个数据
  • 老板现在喊我大哥,原因是我用阿里分布式事务框架Seata解决了长久以来困扰公司的分布式事务问题

    大家好 我是曹尼玛 从大学毕业5年 一直努力学习 努力工作 追求新技术 不保守 上个月我来到一家新公司上班 月薪20K 这家公司老板人很好 对员工很关爱 公司氛围不错 同事们也努力把公司项目搞搞好 除了那个混日子的10年开发经验的老王 老板
  • 分布式架构之服务注册中心选型

    互联网架构下 大部分系统已经转型分布式 其中服务注册发现中心 分布式服务中非常重要的组成部分 按需选择合适的注册中心 也变的尤为重要 一 Eureka Eureka是SpringCloud全家桶中非常重要的一个组件 主要是实现服务的注册和发
  • 业界主流的RPC框架有哪些,Dubbo与Hadoop RPC的区别

    业界主流的RPC框架有哪些 Dubbo与Hadoop RPC的区别
  • 分布式事务6种解决方案(超详细)

    文章目录 分布式事务六种解决方案 前言 ACID 分布式事务 2PC 二阶段提交 同步阻塞协议 准备阶段 提交阶段 协调者故障分析 协调者是一个单点 存在单点故障问题 3PC 三阶段提交 准备阶段 预提交阶段 提交阶段 参与者超时机制 总结
  • Zookeeper的功能以及工作原理

    1 ZooKeeper是什么 ZooKeeper是一个分布式的 开放源码的分布式应用程序协调服务 是Google的Chubby一个开源的实现 它是集群的管理者 监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作 最终 将简单易用
  • seata docker 连接nacos

    1 拉取镜像 docker pull seataio seata server 1 3 0 2 运行镜像 docker run name seata1 3 0 p 8091 8091 d seataio seata server 1 3 0
  • Seata 多路服务调用时事务不回滚解决办法

    最近使用了Seata作为分布式事务管理工具 在一般情况如 A服务调用B服务且A服务调用C服务 即A B A C这种服务调用链路 当其中任意一个服务报错 事务是可以回滚的 然而 稍微复杂一点的情况我发现seata事务居然不会回滚了 即A B
  • CAP和BASE理论

    CAP理论 CAP是 Consistency Availability Partition tolerance 三个词语的缩写 分别表示一致性 可用性 分区容忍性 它指出一个分布式计算系统不可能同时满足以下三点 一致性 Consistenc
  • 区块链四:共识机制——PBFT算法深入讲解

    TOC 背景介绍 共识机制是区块链一大知识领域 作用就是维持分布式节点间的一致性 从而支撑去中心化 早在区块链之前 就存在各种分布式的共识机制 共识机制不是因区块链所发明 但区块链却对共识机制推广和进步有着重要影响 共识算法分类 按应用场景
  • seata1.3.0 系列学习(二、nacos+seata使用)

    上篇文章讲了如何安装seata 这篇文章主要讲如何使用 分布讲解什么情况回滚 不回滚 一 新建父级maven pom xml文件导入
  • seata server 1.6版本安装及配置

    文章目录 下载 安装并启动 数据库 导入数据库 修改配置文件 服务注册 配置中心 手动添加 脚本导入 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 Seata 是一款开源的分布式事务解决方
  • 分布式事务-seata AT模式-强一致性。

    目录 1 seata原理 2 关键组件 3 seate服务端参数 4 微服务配置 5 业务流程 6 依次启动eureka seate服务器 微服务 1 seata原理 Seata 是一款开源的分布式事务解决方案 致力于提供高性能和简单易用的
  • 【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)

    文章目录 前言 参考目录 版本说明 Windows 部署 seata server 1 下载压缩包 2 文件存储模式 3 db 存储模式 3 1 建表 3 2 修改配置文件 3 3 启动脚本 4 源码部署 Docker 部署 seata s
  • dubbo zookeeper spring mvc简单整合的工程例子demo

    该demo只是简单的集成 包括了5个工程 都是maven结构的 如下图所示 服务端 dubbo demo server api 服务接口定义工程 dubbo demo server biz 服务接口实现工程 web dubbo server
  • 事务,不只ACID

    1 什么是事务 应用在运行时可能会发生数据库 硬件的故障 应用与数据库的网络连接断开或多个客户端端并发修改数据导致预期之外的数据覆盖问题 为了提高应用的可靠性和数据的一致性 事务应运而生 从概念上讲 事务是应用程序将多个读写操作组合成一个逻

随机推荐

  • 半监督目标检测(二)

    目录 Humble Teacher 1 要点 2 Overview 1 监督分支 2 非监督分支 3 图像增广 4 预测阶段 3 Soft Labels and Unsupervised Loss 1 RPN阶段 2 ROI 阶段 4 Ex
  • HJ61 放苹果

    题目 HJ61 放苹果 题解 递归 f m n 表示将m个苹果放在n个盘子中所有的放法 当n gt m时 一定有盘子空着 等效于将m个苹果放到m个盘子中 即f m n f m m 当 n lt m时 没有空盘子 那么每个盘子至少有一个 那么
  • 共享单车数据如何可视化?这篇文章手把手教你

    大家好 本篇文章是我今年立的flag的第5篇打卡文章 如果还不清楚背景的童鞋可以回看我今年1月1日发的这篇文章2021年来了 是时候为新的一年再立几个新的flag了 今天选取的地图是前几天利用数字中国创新大赛提供的共享单车数据做的一个可视化
  • org.hibernate.NonUniqueObjectException:a different object with the same identifier 异常解决方法

    问题 org hibernate NonUniqueObjectException a different object with the same identifier value was already associated with
  • 数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 注意 本文是 数字图像直方图匹配或规定化Histogram Matching Specification 处理 增加了部分问题的进一步解释后的
  • 世界树服务器bug位置,四叶草剧场世界树bug怎么获得 世界树bug神器获取位置图文详解...

    核心提示 四叶草剧场世界树bug怎么获得 在四叶草剧场的游戏中 世界树的爬塔挑战是最近玩家们正在参与的 不少玩家不知道BUG神器在哪一层怎么获得 接下来小编就为大家详细的介绍一下四叶草剧场世界树bug神器的获取位置图文详解吧 四叶草剧场世界
  • Linux使用jdk报错 /lib/ld-linux.so.2: bad ELF interpreter: No such file or direct

    有人说sudo yum install glibc i686可以解决问题 但是我认为不是这个问题 具体原因应该是在64位的机器中要兼容32位的jdk才会有这个问题 最根本的问题应该是jdk安装的版本错误 使用uname a查看linux架构
  • 分支限界---->15-谜问题

    15 谜问题 一 问题描述 在一个分成16格的方形棋盘上放有15块编了号的牌 对于这些牌给定的一种初始排列 要求通过一系列的合法移动将初始排列转换成目标排列 合法移动 每次将一个邻接于空格的牌移动到空格位置 注 并不是所有的初始状态都能变换
  • 单片机三种烧录方式ICP、IAP和ISP详解

    单片机三种烧录方式ICP IAP和ISP详解 目录 单片机三种烧录方式ICP IAP和ISP详解 1 ICP In Circuit Programing 2 ISP In System Programing 3 IAP In applica
  • 如何用idea开发vue

    文章目录 一 建脚手架 二 使用步骤 1 把项目拉入idea 提示 以下是本篇文章正文内容 下面案例可供参考 一 建脚手架 下载node和vue脚手架 C gt node v v10 14 1 C gt npm install g vue
  • Solidworks绘制齿轮过程备注

    1 使用solidworks自带的toolbox绘制齿轮 如果toolbox打开失败 按照以下方法修复一下 https blog csdn net sinat 38295192 article details 105612369 2 too
  • 【0325】分组密码

    分组密码 体制概述 分组密码体制 Block cipher 是在密钥k控制下一次变换一个明文数据块 又称分组 的密码体制 特点 速度快 易于标准化和便于软硬件实现等特点 设计原则和评估 针对安全性的两个基本原则 扩散和混淆 对抗统计分析 扩
  • Solidity学习代码示例 - 第一节

    掌握了Solidity的基本语法后 我们开始从一些简单的代码层面上来慢慢深入学习Solidity这门语言 在这篇文章中 我将会在代码层面带着大家去实现我们想要的逻辑 带着大家一起感受Solidity这门语言 我们所有的代码编译部署都是在智能
  • elementUI实现上传视频时获取视频时长以及设置视频格式、大小限制

    在 before upload 属性绑定的事件中可以获取上传视频的信息对象 通过给这个信息对象内的属性添加判断条件就可以实现对视频的格式及大小进行限制 对于视频时长 也包含在信息对象中 根据下面代码所示方法提取即可 想了解如何给上传图片添加
  • 刷脸支付只需一个确认的眼神就可以付款

    让我们来设想一下这样的场景 你早上匆匆忙忙赶着出门买东西却忘记带手机 没关系 带脸就OK 腾出两只手拎更多的战利品 在结账时候刚好客户打来电话 挂掉又不礼貌 没关系 刷脸支付只需要一个确认的眼神 还有很多方面 刷脸支付将像当年的支付宝一样
  • spring mongodb geo 位置搜索服务 示例

    1 项目关联jar文件 2 配置mongodb xml文件
  • 不知道麦克风阵列是何方神圣?这篇文章告诉你!

    转自 http www ikanchai com 2016 0522 80416 shtml 城宇智能硬件 发布 砍柴网推荐 转载需注明 上个世纪七八十年代 麦克风阵列技术已经开始应用到语音技术的研究中 2000年左右 业界开始慢慢深入 进
  • Java面试复习提纲

    Java面试复习提纲 作者 egg 邮箱 xtfggef gmail com 微博 http weibo com xtfggef 博客 http blog csdn net zhangerqing 本章主要介绍一下面对即将来临的Java面试
  • apache24服务启动

    声明 本文 禁止转载 本文所有观点和概念都系个人总结 难免存在疏漏之处 为不至于诱导初学者误入歧途 望各位以自己实践为准 特此声明 如有错误请告知 服务 链接 https pan baidu com s 1VS xSo3eC7TxihciN
  • 仅四步教你快速接入Seata分布式事务

    简介 Seata 是一款开源的分布式事务解决方案 致力于提供高性能和简单易用的分布式事务服务 Seata 将为用户提供了 AT TCC SAGA 和 XA 事务模式 为用户打造一站式的分布式解决方案 本篇文章将以视频与文字介绍的形式 指引你