我是靠谱客的博主 靓丽汉堡,最近开发中收集的这篇文章主要介绍springboot整合seataseata控制分布式事务:一、为每个服务创建一个表二、安装事务协调器(下载不了的可以从网上找)三、整合:导入依赖:四、解压并启动seata-server五、导入文件registry.conf和file.conf六、在大事务上面标明@GlobalTransactional七、yml配置文件总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
seata控制分布式事务:
一、为每个服务创建一个表
`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;
二、安装事务协调器(下载不了的可以从网上找)
下载地址https://github.com/seata/seata/releases (我这里使用的是1.3.0版本,如果访问不了这个网址可以从网上找)
三、整合:导入依赖:
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.3.0</version>
<exclusions>
<exclusion>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
</exclusion>
</exclusions>
</dependency>
#解决日期序列化问题
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>de.javakaffee</groupId>
<artifactId>kryo-serializers</artifactId>
<version>0.42</version>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
<version>1.3.0</version>
</dependency>
四、解压并启动seata-server
到registry.conf中修改
所有用到分布式事务的微服务都要使用seata DataSourceProxy代理自己的数据源
@Configuration
public class MyseataConfig {
@Bean
public DataSource dataSource(DataSourceProperties properties){
HikariDataSource dataSource = properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
if (StringUtils.hasText(properties.getName())){
dataSource.setPoolName(properties.getName());
}
return new DataSourceProxy(dataSource);
}
}
五、导入文件registry.conf和file.conf
六、在大事务上面标明@GlobalTransactional
七、yml配置文件
seata:
application-id: gulimall-order
tx-service-group: gulimall-order_tx_group
service:
vgroup-mapping:
gulimall-order_tx_group: default
#解决日期序列化问题
client:
undo:
log-serialization: kryo
总结
注意application-id就是项目名,tx-service-group自定义即可和下面的保持一致。尤其注意日期序列化问题。
最后
以上就是靓丽汉堡为你收集整理的springboot整合seataseata控制分布式事务:一、为每个服务创建一个表二、安装事务协调器(下载不了的可以从网上找)三、整合:导入依赖:四、解压并启动seata-server五、导入文件registry.conf和file.conf六、在大事务上面标明@GlobalTransactional七、yml配置文件总结的全部内容,希望文章能够帮你解决springboot整合seataseata控制分布式事务:一、为每个服务创建一个表二、安装事务协调器(下载不了的可以从网上找)三、整合:导入依赖:四、解压并启动seata-server五、导入文件registry.conf和file.conf六、在大事务上面标明@GlobalTransactional七、yml配置文件总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复