【Seata1.5.2 下载 & 配置 & 整合 & 踩坑 & 测试】—— 含各种踩坑记录(详细版)(下)

简介: 【Seata1.5.2 下载 & 配置 & 整合 & 踩坑 & 测试】—— 含各种踩坑记录(详细版)(下)

【Seata1.5.2 下载 & 配置 & 整合 & 踩坑 & 测试】—— 含各种踩坑记录(详细版)(上):https://developer.aliyun.com/article/1390161

四、整合SpringBoot

这里以 seata-order-service2001 服务为例,另外两个同理。

1. POM

💧依赖一定要选对,高版本得用这个 ↓ 不然会报错:not support register type: null

<!--seata-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.seata</groupId>
            <artifactId>seata-spring-boot-starter</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-spring-boot-starter</artifactId>
    <version>1.5.2</version>
</dependency>

2. YML

💧按照这个写基本上就OK

server:
  port: 2001
spring:
  application:
    name: seata-order-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/seata_order?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    driver-class-name: com.mysql.cj.jdbc.Driver
feign:
  hystrix:
    enabled: false
logging:
  level:
    io:
      seata: info
mybatis:
  mapperLocations: classpath:mapper/*.xml
seata:
  tx-service-group: fsp_tx_group  #这里每个服务都是对应不同的映射名,在配置中心可以看到
  registry:
    type: nacos
    nacos:
      server-addr: localhost:8848
      group: SEATA_GROUP
  service:
    vgroup-mapping:
      #这里也要注意 key为映射名,
      fsp_tx_group: default

3. 踩坑说明【重要】

坑一

💧这里有个大坑,老师是旧版本的,我们是新版本的,DruidDataSource 配置了反而出错,参考github解决了

报错:

Bean named ‘dataSourceProxy’ is expected to be of type ‘io.seata.rm.datasource.DataSourceProxy’ but was actually of type ‘com.alibaba.druid.pool.DruidDataSourceE n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIBEnhancerBySpringCGLIBd38bdd7b’ #3805

💧来自大佬的解释(真心感谢):自1.3以来不鼓励自己注册DataSourceProxy bean。如果您正在使用DataSourceProxy,则不需要关心DataSourceProxy(starter将自动处理它),只需以旧的方式注册并使用datasourcebean。

💧也就是说,在后续的高版本中,我们不要再去手动配置数据源了,就使用自动创建的数据源即可。

坑二

💧由于我的nacos是2.1.1,并且seata是1.5.2,工程父pom中的依赖不再适用。

💧详情请参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

💧根据文档,找到适配的依赖版本:

4. 🌸测试Seata(完结撒花)🌸

🌸启动, seata、nacos、三个微服务之后

🌸访问:http://localhost:2001/order/create?userId=1&productId=1&count=10&money=100

🌸查看数据库中对应的数据(原始sql语句在老师的笔记中有,实在没有的话,你也可以参考这篇很棒的文章:Spring Cloud 学习笔记(3 / 3)

🌸先正常访问,看看数据库情况:http://localhost:2001/order/create?userId=1&productId=1&count=10&money=100

🌸添加超时,OpenFeign 默认超时是1s,我们超时20秒,这样可以模拟一个服务异常的场景,观察数据库有无写操作

🌸由于服务异常,操作回滚,数据全部OK!真 · 完结撒花!!!🌸🌸ヽ(°▽°)ノ🌸 ~~~

相关文章
|
6天前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
35 1
|
6天前
|
JavaScript API
【vue】分环境构建(开发/测试/生产)配置
【vue】分环境构建(开发/测试/生产)配置
18 1
|
6天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
55 1
|
6天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(上)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
94 0
|
6天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
39 0
|
6天前
|
Nacos 数据库
分布式事务解决方案Seata
分布式事务解决方案Seata
29 1
|
6天前
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
|
6天前
|
关系型数据库 MySQL 数据库
分布式事务Seata
分布式事务Seata
|
6天前
|
存储 关系型数据库 MySQL
基于Seata实现分布式事务
通过以上步骤,你可以使用 Seata 实现分布式事务,确保在微服务架构中的事务一致性。Seata 支持多种语言和框架,能够满足不同业务场景的需求。欢迎关注威哥爱编程,一起学习成长。
|
6天前
|
Java 数据库连接 API
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)
66 0

热门文章

最新文章