原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/14398087.html

 

存储模式说明

Seata Server端的存储模式有三种

  • file
  • db
  • redis

默认为file

Seata Server环境搭建

 

搭建DB存储模式

下载安装包

wget https://github.com/seata/seata/releases/download/v1.4.1/seata-server-1.4.1.tar.gz
wget https://github.com/seata/seata/archive/v1.4.1.tar.gz

 

解压

tar zxvf seata-server-1.4.1.tar.gz -C ~/app/
tar zxvf v1.4.1.tar.gz -C ~/app/

 

建表

全局事务会话信息由3块内容构成

  • 全局事务 —— global_table
  • 分支事务 —— branch_table
  • 全局锁 —— lock_table

创建数据库seata,执行sql脚本(~/app/seata-1.4.1/script/server/db/mysql.sql)

-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(
    `xid`                       VARCHAR(128) NOT NULL,
    `transaction_id`            BIGINT,
    `status`                    TINYINT      NOT NULL,
    `application_id`            VARCHAR(32),
    `transaction_service_group` VARCHAR(32),
    `transaction_name`          VARCHAR(128),
    `timeout`                   INT,
    `begin_time`                BIGINT,
    `application_data`          VARCHAR(2000),
    `gmt_create`                DATETIME,
    `gmt_modified`              DATETIME,
    PRIMARY KEY (`xid`),
    KEY `idx_gmt_modified_status` (`gmt_modified`, `status`),
    KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

-- the table to store BranchSession data
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 = utf8;

-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(
    `row_key`        VARCHAR(128) NOT NULL,
    `xid`            VARCHAR(96),
    `transaction_id` BIGINT,
    `branch_id`      BIGINT       NOT NULL,
    `resource_id`    VARCHAR(256),
    `table_name`     VARCHAR(32),
    `pk`             VARCHAR(36),
    `gmt_create`     DATETIME,
    `gmt_modified`   DATETIME,
    PRIMARY KEY (`row_key`),
    KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;
View Code

相关文章:

  • 2021-04-02
  • 2021-04-17
  • 2022-01-03
  • 2021-10-22
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
猜你喜欢
  • 2022-12-23
  • 2021-05-16
  • 2022-12-23
  • 2021-05-31
  • 2023-03-06
  • 2022-01-22
相关资源
相似解决方案