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
立志如山 静心求实
浙公网安备 33010602011771号