?Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,其内部版本在阿里系内部一直扮演着应用架构层数据一致性的中间件角色,帮助经济体平稳的度过历年的双11,对上层业务进行了有力的技术支撑。经过多年沉淀与积累,其商业化产品先后在阿里云、金融云上售卖。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,未来 Seata 将以社区共建的形式帮助用户快速落地分布式事务解决方案。
?官方网站:?Seata
?找到对应的版本进行下载: 下载地址:?Releases · apache/incubator-seata (github.com)
?或者博主提供的两个版本一个是最新版2.0.0 一个是现在使用的是1.6.1版本
【免费】?Seata是一款开源的分布式事务解决方案资源-CSDN文库
维护全局和分支事务的状态,驱动全局事务提交或回滚。
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
官方文档就是最好的文档,多看官方的
修改数据库字段,seata的AT模式会自动生成反向SQL,且没有反引号‘’,所以要求表里面不能有关键字,并且在模块中添加数据库表,我们使用的是AT模式
CREATE TABLE `undo_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`branch_id` bigint(20) NOT NULL,
`xid` varchar(100) NOT NULL,
`context` varchar(128) NOT NULL,
`rollback_info` longblob NOT NULL,
`log_status` int(11) NOT NULL,
`log_created` datetime NOT NULL,
`log_modified` datetime NOT NULL,
`ext` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
然后添加seata分布式组件依赖,查看maven是否添加进来了依赖client和server都是用的1.6.1
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
接下来就是项目中的配置文件的配置,第一个可以使不做配置,这三个配置项都有默认值,默认客户端的tx-service-group=default_tx_group,最后一个是seata默认端口
?之后代码已修改就是增加或者换成@GlobalTransactional注解, 全局事务注解
下载安装seata之后不需要修改任何配置就可以直接启动
在配置文件配置的默认端口是8091 ,下面显示的是7091的原因?
?在我们的模块配置以上之后启动这个时候就会显示是否连接上了seata客户端,上面也有说明连接的数据库
?可以在代码中加入显示这个,发现全部都是一样的