seata搭建使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: seata搭建使用,欢迎大家积极评论指点

1、下载seata上传到服务器已经数据库建表略过

2、linux服务器seata配置

file.conf

store {
## store mode: file、db、redis  mode ="db"## database store property  db {
## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.    datasource ="druid"## mysql/oracle/postgresql/h2/oceanbase etc.    dbType ="mysql"    driverClassName ="com.mysql.cj.jdbc.Driver"    url ="jdbc:mysql://localhost:3306/seata?useUnicode=true"    user ="root"    password ="root"    minConn =5    maxConn =100    globalTable ="global_table"    branchTable ="branch_table"    lockTable ="lock_table"    queryLimit =100    maxWait =5000  }
)

registry.conf

registry  {
  type ="nacos"  nacos {
    application ="seata-server"    serverAddr ="127.0.0.1:8848"    group ="SEATA_GROUP"    namespace ="namespace"    cluster ="default"    username ="nacos"    password ="nacos"  }
}
config {
  type ="nacos"  nacos {
    serverAddr ="127.0.0.1:8848"    namespace ="namespace"    group ="SEATA_GROUP"    username ="nacos"    password ="nacos"  }
}

3、nacos seata配置

service.vgroupMapping.ruoyi-system-group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=truestore.db.user=root
store.db.password=root
store.db.minConn=5store.db.maxConn=30store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100store.db.lockTable=lock_table
store.db.maxWait=5000

   我是配合若依框架使用的,这些也是从若依框架拿下来的配置,更详细的可以参考seata和若依官网。

image.png

   等号前面是Data ID,后面是文件内容,以第一个为例,内容如下

image.png

   此时启动seata即可

4、配合项目使用

   假设使用seata的调用方为consumer服务,此时consumer需要远程调用payment服务,在comsumer中加入下方依赖:

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

   加入依赖后,在远程调用的方法上加入@GlobalTransactional(rollbackFor = Exception.class)注解,并在application.yml中加上如下配置

# seata配置seata:# 默认关闭,如需启用spring.datasource.dynami.seata需要同时开启  enabled: true# Seata 应用编号,默认为 ${spring.application.name}  application-id: ${spring.application.name}# Seata 事务组编号,用于 TC 集群名  tx-service-group: ${spring.application.name}-group
# 关闭自动代理  enable-auto-data-source-proxy: true# 服务配置项  service:# 虚拟组和分组的映射    vgroup-mapping:      consumer-group: default
  config:    type: nacos
    nacos:      serverAddr: 127.0.0.1:8848      group: SEATA_GROUP
      namespace: namespace
  registry:    type: nacos
    nacos:      application: seata-server
      server-addr: 127.0.0.1:8848      namespace: namespace

   在payment被调用的方法中加上@Transactional(rollbackFor = Exception.class)注解,并在application.yml中加上如下配置

# seata配置seata:# 默认关闭,如需启用spring.datasource.dynami.seata需要同时开启  enabled: true# Seata 应用编号,默认为 ${spring.application.name}  application-id: ${spring.application.name}# Seata 事务组编号,用于 TC 集群名  tx-service-group: ${spring.application.name}-group
# 关闭自动代理  enable-auto-data-source-proxy: true# 服务配置项  service:# 虚拟组和分组的映射    vgroup-mapping:      payment-group: default
  config:    type: nacos
    nacos:      serverAddr: 127.0.0.1:8848      group: SEATA_GROUP
      namespace: namespace
  registry:    type: nacos
    nacos:      application: seata-server
      server-addr: 127.0.0.1:8848      namespace: namespace

   两者的application配置中除了vgroup-mapping:中的服务名称不一样外其他配置都一样,而上述的paymentconsumer的服务名要和注册到nacos中的服务名一样。

5、在seata命名空间中添加配置

   名称为service.vgroupMapping.服务名-group内容为default格式为TEXT即可,如上述案例

service.vgroupMapping.consumer-groupservice.vgroupMapping.payment-group两者都需要添加

6、结束语

本人刚入职开发行业,第一次写文档,无论是技术有不正确或者不严谨的地方、还是文档格式排版不合适的地方欢迎大家指正,我一定积极学习。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
NoSQL Java Redis
【Seata】分布式事务框架Seata踩坑集锦
【Seata】分布式事务框架Seata踩坑集锦
【Seata】分布式事务框架Seata踩坑集锦
|
7月前
|
SQL 容灾 数据库
Seata笔记2
Seata笔记2
41 1
|
7月前
|
NoSQL Nacos Redis
Seata 配置
Seata
226 2
|
容灾 Shell Nacos
【Seata】seata的部署和集成
一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html
242 0
|
Nacos 微服务
【Seata】初识Seata
Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。
244 0
|
7月前
初识Seata
初识Seata
49 0
|
7月前
|
关系型数据库 MySQL Apache
|
SQL Dubbo Java
Whats's New In Seata 1.6.x
Whats's New In Seata 1.6.x
Whats's New In Seata 1.6.x
|
SQL Java 关系型数据库
SEATA1.6.1的配置与使用
SEATA1.6.1的配置与使用
2660 0
|
存储 SQL 调度