2SEATA Server部署 · SpringCloud微服务实战 · 看云

导航

1. Seata 部署包下载

因在演示的时候使用的spring-cloud-alibaba版本是2.2.0.RELEASE,里面所用的seata版本是1.0.0,因此我们需要下载seata 1.0.0 的版本。
6d04f207a83268972abbffd605509003_MD5.webp

解压后如下:
9eed77e02b0884fa56da7a133dcf69ec_MD5.webp

2. Server端配置修改

Server端存储模式(store.mode)现有file、db两种(后续将引入raft),file模式无需改动,直接启动即可,下面专门讲下db启动步骤。

注:
file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;
db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些。

2.1 修改conf目录下的file.conf配置文件

这里我们演示使用db模式,并且修改了组名
090bf5ada2cb4136bf3b2dc6f103dea5_MD5.webp

2.2 创建数据库fw_seata

然后执行以下脚本,以下3张表示Seata Server 必须的

-- 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,
    `gmt_modified`      DATETIME,
    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;

2.2 修改conf目录下的registry.conf

修改nacos 的注册中心为nacos,并且修改正确的nacos地址(先将nacos 启动起来),其它配置默认即可
eaadf40563b3fdff1150aa7d3ce114a5_MD5.png

2.3 Seata Server 启动

进入bin目录,window 下的话双击bat 文件即可,Linux 环境下 执行sh 文件即可
1aeed7133643030fa88902bb2fe536cd_MD5.png

到nacos 中可以看到注册了一个服务上来
可以看到如下图所示:
c24b5e5d48e761f8863d75a5c78f061b_MD5.png

到此,说明Seata Server 已经部署成功