最近,学习了使用seata实现分布式事务的回滚,在这里对使用方法做一下小结。

1、从官网下载seata,解压到某个目录下面,修改2个配置文件,file.conf和registy.conf。其中,file.conf里面配置了存储方式,可以使用文件存储和数据库存储,默认使用文件存储,可以不做修改。registy.conf里面配置了注册中心,修改成nacos,并设置nacos的IP地址和端口号:
registry {

type = “nacos”

nacos {
application = “seata-server”
serverAddr = “127.0.0.1:8848”
group = “SEATA_GROUP”
namespace = “”
cluster = “default”
username = “”
password = “”
}
},
因为项目当中还没有用到配置中心,可以不做修改。

2、在相应的模块添加seata的依赖项,

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>

3、在application.yml里面对seata进行配置:

seata:
  enabled: true
  application-id: ${spring.application.name}
  txServiceGroup: my_test_tx_group
  # 是否开启数据源自动代理 如果不开启设置为false
  enable-auto-data-source-proxy: true
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: localhost:8848

4、添加@GlobalTransactional注解,用于实现相关方法的分布式事务,

@Override
@Transactional
@GlobalTransactional
public SubmitOrderResponseVo submitOrder(OrderSubmitVo orderSubmitVo) {

4、双击seata-server.bat,启动seata的服务,并启动相关的其他服务,测试运行结果。

更多配置信息详见官方文档

Logo

鸿蒙生态一站式服务平台。

更多推荐