仅四步教你快速接入Seata分布式事务
本文作者:FUNKYE(陈健斌),杭州某互联网公司主程。
简介:
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这张表
1 |
|
第三步:
在你的项目中引入seata依赖(注:1.1.0版本目前需通过oss远程仓库发布,等正式版发布即可直接使用,或者可通过拉取1.1.0的源码进行本地打包使用.)
oss远程仓库:
https://oss.sonatype.org/index.html#view-repositories;snapshots~browsestorage~seata
1 | <!-- 教程根据快照版录制,正式版发布后请切换正式版依赖 --> |
并在你参与其中的项目的application.yml中都加入如下配置(视频内容不方便修改,在配置上请参考图文内容)
1 |
|
application.properties参考如下:
1 | true = |
注:starter1.1.0的自动代理支持属性配置和注解@EnableAutoDataSourceProxy两种方式
第四步:
在您的发起者的接口上加入@GlobalTransactional,并查看server日志以及程序日志进行调试即可.
比如:
1 | @GlobalTransactional |