seata springcloud整合教程与遇到的坑

作者:路过君_P 时间:2023-09-19 03:11:06 

SEATA概要

seata 是alibaba 出的一款分布式事务管理器,他有侵入性小,实现简单等特点。我们能够使用seata 实现分布式事务管理,

是微服务必备的组件。他可以实现在微服务之间的事务管理,也可以实现多个数据源的事务管理。

seata 在阿里内部,和众多的公司都有应用,因此我们可以放心的使用它。

依赖


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

建表

AT模式客户端服务的数据库都需要建表undo_log
否则报错

java.sql.SQLSyntaxErrorException: Table ‘psr_enterprise_control_test.undo_log' doesn't exist

官方GIT脚本文件


-- for AT mode you must to init this sql for you business database. the seata server not need it.
CREATE TABLE IF NOT EXISTS `undo_log`
(
   `branch_id`     BIGINT       NOT NULL COMMENT 'branch transaction id',
   `xid`           VARCHAR(128) NOT NULL COMMENT 'global transaction id',
   `context`       VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
   `rollback_info` LONGBLOB     NOT NULL COMMENT 'rollback info',
   `log_status`    INT(11)      NOT NULL COMMENT '0:normal status,1:defense status',
   `log_created`   DATETIME(6)  NOT NULL COMMENT 'create datetime',
   `log_modified`  DATETIME(6)  NOT NULL COMMENT 'modify datetime',
   UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
 AUTO_INCREMENT = 1
 DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';

配置

application.yml


seata:
 enabled: true
 enable-auto-data-source-proxy: true
 tx-service-group: my_test_tx_group # 与seata.service.vgroup-mapping一致
 registry:
   type: nacos # 与seata注册中心相同
   nacos:
     application: seata-server
     server-addr: ${PSR_NACOS:localhost:8848}
     namespace: test
     group: application
     cluster: default
 config:
   type: nacos # 与seata配置中心相同
   nacos:
     server-addr: ${PSR_NACOS:localhost:8848}
     group: seata
     namespace: test
 service:
   vgroup-mapping:
     my_test_tx_group: default # 事务分组名
   disable-global-transaction: false
 client:
   rm:
     report-success-enable: false

启用全局事务

@GlobalTransactional

来源:https://blog.csdn.net/zhoudingding/article/details/118518708

标签:seata,springcloud
0
投稿

猜你喜欢

  • 普通类注入不进spring bean的解决方法

    2021-06-07 19:22:41
  • Java中遍历ConcurrentHashMap的四种方式详解

    2023-11-17 08:54:41
  • springboot整合shardingsphere和seata实现分布式事务的实践

    2021-08-10 04:28:37
  • Python安装Jupyter Notebook配置使用教程详解

    2023-08-31 02:52:03
  • Java 实现微信和支付宝支付功能

    2023-03-08 23:18:04
  • 详解Android中AsyncTask的使用方法

    2023-10-08 04:24:51
  • Spring Cloud Config RSA简介及使用RSA加密配置文件的方法

    2023-11-28 22:39:26
  • Android 开发中Volley详解及实例

    2023-07-21 00:12:19
  • Android AutoCompleteTextView控件基本用法示例

    2022-04-05 08:53:43
  • 详谈Java几种线程池类型介绍及使用方法

    2023-10-13 03:27:30
  • Java中包装类和Arrays类的详细介绍

    2023-12-03 22:04:13
  • Android 中ScrollView与ListView冲突问题的解决办法

    2022-06-15 04:31:46
  • 简述Mybatis增删改查实例代码

    2023-03-06 18:07:53
  • java开发之内部类的用法

    2023-02-04 21:30:07
  • Java8中Optional类型和Kotlin中可空类型的使用对比

    2023-07-29 07:49:21
  • Java Stopwatch类,性能与时间计时器案例详解

    2023-07-24 04:08:50
  • 详解Java中restTemplate的使用

    2023-06-19 23:20:29
  • C# 多线程学习之基础入门

    2022-11-08 05:38:13
  • Android Flutter实现3D动画效果示例详解

    2022-04-12 19:34:35
  • Java 单例模式的实现资料整理

    2022-05-29 21:27:33
  • asp之家 软件编程 m.aspxhome.com