Seata-1.4.2版本安装及注意事项

文章目录

  • 1.下载Nacos
  • 2.下载seata
  • 3.解压seata
  • 4.mysql数据库新建库seata库
  • 5.seata库建表
  • 6.修改file.conf配置
  • 7.修改registry.conf配置
  • 8.修改config.txt文件
  • 9.启动seata-server
  • 10. 小结

1.下载Nacos

Nacos下载地址:https://github.com/alibaba/nacos/releases

启动Nacos,创建一个seata的命名空间

Seata-1.4.2版本安装及注意事项_第1张图片

2.下载seata

下载seata-server-1.4.2版本

Seata下载地址:https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip

这里需要下载seata-server-1.4.2.zipSource code两个包,如果源码包下载不下来也没关系,可以从源码里直接拷贝代码,我就死活下载失败。

Seata-1.4.2版本安装及注意事项_第2张图片

3.解压seata

解压seata-server-1.4.2.zip到指定目录

4.mysql数据库新建库seata库

这个略,本人用的mysql8.0.23版本数据库

5.seata库建表

建表语句:https://github.com/seata/seata/blob/develop/script/server/db/mysql.sql

这里一定要先在mysql里建表!!!!我把建表语句贴了出来

Seata-1.4.2版本安装及注意事项_第3张图片

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(128),
    `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;

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);

6.修改file.conf配置

修改seata-server-1.4.2\conf目录下的file.conf配置文件,此处要注意一下,mysql5mysql8的驱动是不一样的。

Seata-1.4.2版本安装及注意事项_第4张图片

7.修改registry.conf配置

修改seata-server-1.4.2\conf目录下的registry.conf配置文件,此处的namespace就是在Nacos中创建的seata命名空间。

Seata-1.4.2版本安装及注意事项_第5张图片

8.修改config.txt文件

修改config.txt,并导入nacos-server配置

这个config.txt配置文件在哪里呢?如果在第一步中,seata的源码能下载下来,这文件就是这个源码里。如果下载不下来,就直接去github上去拷贝,把整个script文件夹拷贝下来。config.txtconfigt-center文件夹下面。

https://github.com/seata/seata/blob/develop/script/config-center/config.txt

Seata-1.4.2版本安装及注意事项_第6张图片
Seata-1.4.2版本安装及注意事项_第7张图片

做如下修改:

Seata-1.4.2版本安装及注意事项_第8张图片

下面要把config.txt中的文件导入都Nacos的配置中心里,需要进入到config-center目录下的nacos文件夹,里面有两个文件,一个是.sh文件,一个是.py文件,当然也就提供了两种方式导入Nacos配置中心。下面使用.sh文件,在nacos文件下打开git bash终端命令行,执行如下命令:

sh nacos-config.sh -h 127.0.0.1 -p 8848 -g SEATA_GROUP -t 88b8f583-43f9-4272-bd46-78a9f89c56e8 -u nacos -w nacos

-h:nacos地址
-p:端口,默认8848
-g:seata的服务列表分组名称
-t:nacos命名空间id
-u和-w:nacos的用户名和密码

执行有4个失败,看看失败项,其实也没啥。

Seata-1.4.2版本安装及注意事项_第9张图片
Seata-1.4.2版本安装及注意事项_第10张图片

在Nacos配置中心,查看导入的配置项。

Seata-1.4.2版本安装及注意事项_第11张图片

9.启动seata-server

建议用CMD命令行窗口执行,这样可以看到启动错误,如果启动报错,可能有两个原因,第一,内存需要调整,第二,数据库脚本没有执行。

Seata-1.4.2版本安装及注意事项_第12张图片
Seata-1.4.2版本安装及注意事项_第13张图片

JVM启动参数调整如下:

Seata-1.4.2版本安装及注意事项_第14张图片

10. 小结

Seata环境搭建需要注意以下几点内容:

  • Seata 客户端的版本需要和服务端保持一致
  • 客户端指定的事务分组名称要和 Nacos 相同,比如 service.vgroupMapping.scorpios-tx-group=default。前缀 service.vgroupMapping,后缀 自定义

TC相关的三张表:

global_table:全局事务表,每当有一个全局事务发起后,就会在该表中记录全局事务的ID

branch_table:分支事务表,记录每一个分支事务的 ID,分支事务操作的哪个数据库等信息

lock_table:全局锁

你可能感兴趣的:(环境搭建,seata,seata安装,seata-1.4.2)