seata环境搭建

      1、github下载seata-server-1.4.1.zip文件

      2、seata库建立mysql的表,https://github.com/seata/seata/blob/1.4.1/script/server/db/mysql.sql

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

  branch_table:分支事务表,记录每一个分支事务的 ID,分支事务操作的哪个数据库等信息,当一个服务调用另一个服务进行全局事务时,可以看到,在该表中插入了当前两个服务分支事务的相关信息,其中重要的有ID、事务模式、客户端地址、数据库连接地址等。

INSERT INTO `branch_table` VALUES (99302990136565280, '192.168.58.1:8091:99302990136565278', 99302990136565278, NULL,
'jdbc:mysql://127.0.0.1:3306/db_account', 'AT', 0, 'demo001:192.168.58.1:2116', NULL, '2022-01-25 16:56:58.092953', '2022-01-25 16:56:58.092953'); INSERT INTO `branch_table` VALUES (99302990136565283, '192.168.58.1:8091:99302990136565278', 99302990136565278, NULL,
'jdbc:mysql://127.0.0.1:3306/db_order', 'AT', 0, 'demo002:192.168.58.1:2617', NULL, '2022-01-25 16:56:58.551257', '2022-01-25 16:56:58.551257');

  lock_table:全局锁

-- -------------------------------- 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,  //全局事务ID
    `transaction_id`            BIGINT,                 //事务id
    `status`                    TINYINT      NOT NULL,  //状态
    `application_id`            VARCHAR(32),            //应用id
    `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, //分支事务id
    `xid`               VARCHAR(128) NOT NULL, //全局事务id
    `transaction_id`    BIGINT,                //全局事务id,不带TC地址
    `resource_group_id` VARCHAR(32),           //资源分组id
    `resource_id`       VARCHAR(256),          //资源id
    `branch_type`       VARCHAR(8),            //事务模式
    `status`            TINYINT,               //状态
    `client_id`         VARCHAR(64),           //客户端id
    `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;

      3、修改file.conf配置文件

       4、修改registry.conf配置

       conf目录下的registry.conf配置文件,namespace是nacos创建的命名空间

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

 

        把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的用户名和密码

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

 

        6、启动seata-server

 

  

 

posted on 2022-04-07 21:54  溪水静幽  阅读(230)  评论(0)    收藏  举报