Merge pull request #7370 from EightMonth/master

使seata直接与springboot datasource挂钩
pull/7524/head
JEECG 2024-11-20 10:30:39 +08:00 committed by GitHub
commit a35555619c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 95 additions and 113 deletions

View File

@ -1,79 +1,77 @@
/* -- -------------------------------- The script used when storeMode is 'db' --------------------------------
Navicat Premium Data Transfer -- the table to store GlobalSession data
Source Server : localhost
Source Server Type : MariaDB
Source Server Version : 100316
Source Host : localhost:3300
Source Schema : seata
Target Server Type : MariaDB
Target Server Version : 100316
File Encoding : 65001
Date: 05/01/2022 20:25:07
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for branch_table
-- ----------------------------
DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table` (
`branch_id` bigint(20) NOT NULL,
`xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`transaction_id` bigint(20) NULL DEFAULT NULL,
`resource_group_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`branch_type` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`status` tinyint(4) NULL DEFAULT NULL,
`client_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
PRIMARY KEY (`branch_id`) USING BTREE,
INDEX `idx_xid`(`xid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`; DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table` ( CREATE TABLE IF NOT EXISTS `global_table`
`xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, (
`transaction_id` bigint(20) NULL DEFAULT NULL, `xid` VARCHAR(128) NOT NULL,
`status` tinyint(4) NOT NULL, `transaction_id` BIGINT,
`application_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `status` TINYINT NOT NULL,
`transaction_service_group` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `application_id` VARCHAR(32),
`transaction_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `transaction_service_group` VARCHAR(32),
`timeout` int(11) NULL DEFAULT NULL, `transaction_name` VARCHAR(128),
`begin_time` bigint(20) NULL DEFAULT NULL, `timeout` INT,
`application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `begin_time` BIGINT,
`gmt_create` datetime(0) NULL DEFAULT NULL, `application_data` VARCHAR(2000),
`gmt_modified` datetime(0) NULL DEFAULT NULL, `gmt_create` DATETIME,
PRIMARY KEY (`xid`) USING BTREE, `gmt_modified` DATETIME,
INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE, PRIMARY KEY (`xid`),
INDEX `idx_transaction_id`(`transaction_id`) USING BTREE KEY `idx_status_gmt_modified` (`status` , `gmt_modified`),
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- ---------------------------- -- the table to store BranchSession data
-- Table structure for lock_table DROP TABLE IF EXISTS `branch_table`;
-- ---------------------------- CREATE TABLE IF NOT EXISTS `branch_table`
(
`branch_id` BIGINT NOT NULL,
`xid` VARCHAR(128) NOT NULL,
`transaction_id` BIGINT,
`resource_group_id` VARCHAR(32),
`resource_id` VARCHAR(256),
`branch_type` VARCHAR(8),
`status` TINYINT,
`client_id` VARCHAR(64),
`application_data` VARCHAR(2000),
`gmt_create` DATETIME(6),
`gmt_modified` DATETIME(6),
PRIMARY KEY (`branch_id`),
KEY `idx_xid` (`xid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- the table to store lock data
DROP TABLE IF EXISTS `lock_table`; DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table` ( CREATE TABLE IF NOT EXISTS `lock_table`
`row_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, (
`xid` varchar(96) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `row_key` VARCHAR(128) NOT NULL,
`transaction_id` bigint(20) NULL DEFAULT NULL, `xid` VARCHAR(128),
`branch_id` bigint(20) NOT NULL, `transaction_id` BIGINT,
`resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `branch_id` BIGINT NOT NULL,
`table_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `resource_id` VARCHAR(256),
`pk` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `table_name` VARCHAR(32),
`gmt_create` datetime(0) NULL DEFAULT NULL, `pk` VARCHAR(36),
`gmt_modified` datetime(0) NULL DEFAULT NULL, `status` TINYINT NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',
PRIMARY KEY (`row_key`) USING BTREE, `gmt_create` DATETIME,
INDEX `idx_branch_id`(`branch_id`) USING BTREE `gmt_modified` DATETIME,
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; PRIMARY KEY (`row_key`),
KEY `idx_status` (`status`),
KEY `idx_branch_id` (`branch_id`),
KEY `idx_xid` (`xid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
SET FOREIGN_KEY_CHECKS = 1; DROP TABLE IF EXISTS `distributed_lock`;
CREATE TABLE IF NOT EXISTS `distributed_lock`
(
`lock_key` CHAR(20) NOT NULL,
`lock_value` VARCHAR(20) NOT NULL,
`expire` BIGINT,
primary key (`lock_key`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);

View File

@ -6,20 +6,15 @@ spring:
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
autoconfigure: autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure exclude: com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration
datasource: datasource:
dynamic:
seata: true # 开启对 seata的支持
primary: account
datasource:
account:
url: jdbc:mysql://127.0.0.1:3306/jeecg_account?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true url: jdbc:mysql://127.0.0.1:3306/jeecg_account?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
username: root username: root
password: root password: root
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
schema: classpath:sql/schema-account.sql schema: classpath:sql/schema-account.sql
seata: seata:
enable-auto-data-source-proxy: false # enable-auto-data-source-proxy: false
service: service:
grouplist: grouplist:
default: 127.0.0.1:8091 default: 127.0.0.1:8091

View File

@ -6,21 +6,15 @@ spring:
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
autoconfigure: autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure exclude: com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration
datasource: datasource:
dynamic:
primary: order
seata: true # 开启对 seata的支持
datasource:
# 设置 账号数据源配置
order:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jeecg_order?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false url: jdbc:mysql://127.0.0.1:3306/jeecg_order?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
username: root username: root
password: root password: root
schema: classpath:sql/schema-order.sql schema: classpath:sql/schema-order.sql
seata: seata:
enable-auto-data-source-proxy: false # enable-auto-data-source-proxy: false
service: service:
grouplist: grouplist:
default: 127.0.0.1:8091 default: 127.0.0.1:8091

View File

@ -5,21 +5,16 @@ spring:
name: seata-product name: seata-product
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
autoconfigure:
exclude: com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration
datasource: datasource:
dynamic:
primary: product
seata: true # 开启对 seata的支持
seata-mode: AT #支持XA及AT模式,默认AT
datasource:
# 设置 账号数据源配置
product:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jeecg_product?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false url: jdbc:mysql://127.0.0.1:3306/jeecg_product?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
username: root username: root
password: root password: root
schema: classpath:sql/schema-product.sql schema: classpath:sql/schema-product.sql
seata: seata:
enable-auto-data-source-proxy: false # enable-auto-data-source-proxy: false
service: service:
grouplist: grouplist:
default: 127.0.0.1:8091 default: 127.0.0.1:8091