25、SpringCloud实战:Seata处理分布式事务(二十五)

SpringCloud无介绍快使用,Seata处理分布式事务(二十五)

  • 问题背景
  • Seata处理分布式事务
  • Seata配置文件放在Nacos
  • 总结
  • Lyric: 电吉它这个时候出来干嘛 到底

问题背景

从零开始学springcloud微服务项目
注意事项:

  • 约定 > 配置 > 编码
  • IDEA版本2021.1
  • 这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了
  • controller调service,service调dao
  • 默认安装nginx
  • 项目源码以及sentinel安装包

Seata处理分布式事务

1Seata中文文档:https://seata.io/zh-cn/docs/overview/what-is-seata.html
*
2下载地址:https://github.com/seata/seata/releases/tag/v1.4.2
*
sql脚本下载地址:https://seata.io/zh-cn/blog/download.html
*

3修改file.conf,更改存储模式和nacos的账号密码,mysql8以上驱动加cj

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"
    ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
    url = "jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true"
    user = "root"
    password = "123456"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }

*

4修改registry.conf,更改注册中心和配置中心类型

type = "nacos"

*

registry {
   
     
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  nacos {
   
     
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = "seata"
    cluster = "default"
    username = ""
    password = ""
  }
}
config {
   
     
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  nacos {
   
     
    serverAddr = "127.0.0.1:8848"
    namespace = "seata"
    group = "SEATA_GROUP"
    username = ""
    password = ""
    dataId = "seataServer.properties"
  }
}

*
*

5Linux启动方式

sh ./bin/seata-server.sh

window启动方式

bin\seata-server.bat

*
*

6创建seata数据库

create database seata;

*

7导入sql脚本,将seata-1.4.2的script复制到seata-server-1.4.2
*
*

8在数据库中执行sql文件:seata-server-1.4.2\script\server\db\mysql.sql
*
*

Seata配置文件放在Nacos

1新建一个配置
*
2填写信息seataServer.properties SEATA_GROUP
*

service.vgroupMapping.mygroup=default
store.mode=db
-----db-----
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://localhost:3306/mysqltest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
store.db.user=root
store.db.password=123456
----client----
client.undo.logTable=undo_log

*

总结

  • 就此springcloud告一段落

SpringCloud无介绍快使用,Seata处理分布式事务(二十五)
SpringCloud无介绍快使用,sentinel服务熔断功能(二十四)
SpringCloud无介绍快使用,sentinel注解@SentinelResource的基本使用(二十三)
SpringCloud无介绍快使用,sentinel热点key限流与系统规则的基本使用(二十二)
SpringCloud无介绍快使用,sentinel熔断降级和限流的基本使用(二十一)
SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)
SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)
SpringCloud无介绍快使用,nacos注册中心的基本使用(十八)
SpringCloud无介绍快使用,gateway通过微服务名实现动态路由(十七)
SpringCloud无介绍快使用,gateway的基本使用(十六)
SpringCloud无介绍快使用,Ribbon负载均衡工具与OpenFeign的使用(十五)
SpringCloud无介绍快使用,使用Zookeeper替换Eureka服务注册与发现(十四)
SpringCloud无介绍快使用,服务发现Discovery和Eureka自我保护(十三)
SpringCloud无介绍快使用,集群cloud-provider-payment8002搭建(十二)
SpringCloud无介绍快使用,集群Eureka服务注册中心cloud-eureka-server7002搭建(十一)
SpringCloud无介绍快使用,单机Eureka服务注册中心cloud-eureka-server7001搭建(十)
SpringCloud无介绍快使用,新建cloud-api-commons公共模块module(九)
SpringCloud无介绍快使用,新建子module消费者订单模块(八)
SpringCloud无介绍快使用,热部署devtools配置(七)
SpringCloud无介绍快使用,子module提供者支付微服务业务开发(六)
SpringCloud无介绍快使用,新建子module提供者支付微服务yml整合和新建启动类(五)
SpringCloud无介绍快使用,新建子module提供者支付微服务pom整合(四)
SpringCloud无介绍快使用,springcloud父工程pom文件整理(三)
SpringCloud无介绍快使用,IDEA新建springcloud父工程(二)
SpringCloud无介绍快使用,与Spingboot之间的兼容版本选择(一)

作为程序员第 192 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
***

Lyric: 电吉它这个时候出来干嘛 到底