我是靠谱客的博主 靓丽汉堡,最近开发中收集的这篇文章主要介绍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配置文件总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部