1、Seata的安装配置
1.1、下载
官网下载地址:http://seata.io/zh-cn/blog/download.html
gitHub下载地址:https://github.com/seata/seata/releases
1.2、解压
将下载好的压缩包,解压到指定目录文件夹下。解压之后的目录文件结构
1.3、修改seata解压目录中的bin
目录下的file.conf
文件
1.4、修改seata解压目录中的bin
目录下的registry.conf
文件
1.5、在本地新建一个seata数据库,导入如下数据库脚本
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;
或者去官网拷贝数据库脚本,网址:https://github.com/seata/seata/blob/1.2.0/script/server/db/mysql.sql
1.6、去官copyconfig.txt
配置和nacos-config.sh
配置
config.txt
网址:https://github.com/seata/seata/blob/develop/script/config-center/config.txt
nacos-config.sh
网址:https://github.com/seata/seata/blob/develop/script/config-center/nacos/nacos-config.sh
将config.txt
配置放在安装seata的目录下,与bin目录同级
将nacos-config.sh
copy下来的文件放在安装seata目录下的conf
目录
1.7、修改config.txt
中的部分配置
1.8、将seata的配置导入到nacos的配置中心
在conf
目录下,使用git将seata的配置导入nacos配置中心,前提是电脑环境上安装了git
使用如下命令进行导入:
sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 0af6e97b-a684-4647-b696-7c6d42aecce7 -u nacos -w nacos
参数详情:命令解析:-h -p 指定nacos的端口地址;-g 指定配置的分组,注意,是配置的分组;-t 指定命名空间id; -u -w指定nacos的用户名和密码,同样,这里开启了nacos注册和配置认证的才需要指定。
按回车等待配置导入成功
出现如图信息,说明导入成功。也可用去Nacos配置中心查看
2、项目配置
Seata和Nacos依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-seata
io.seata
seata-spring-boot-starter
io.seata
seata-spring-boot-starter
1.4.2
application.yml
# seata 配置
seata:
# 分布式事务分组
tx-service-group: my_test_tx_group
# seata配置中心
config:
type: nacos
nacos:
namespace: ff2305f4-a17d-4d48-809e-4f6a3c69f024 #在安装seata目录下的conf中的register.conf的config节点中下的nacos节点的namespace。如果没有配置 默认public空间
# nacos配置中心地址
server-addr: 127.0.0.1:8848
# 分组
group: 'SEATA_GROUP'
# nacos的账号和密码
userName: 'nacos'
password: 'nacos'
# seata的注册中心
registry:
type: nacos
nacos:
application: seata-server
server-addr: 127.0.0.1:8848
namespace: ff2305f4-a17d-4d48-809e-4f6a3c69f024 #在安装seata目录下的conf中的register.conf的register节点中下的nacos节点的namespace。如果没有配置 默认public空间
userName: 'nacos'
password: 'nacos'
service:
vgroup-mapping:
my_test_tx_group: default #这里要特别注意和nacos中配置的要保持一直
项目启动成功,说明上述配置没错
seata+nacos配置参考博客:https://blog.csdn.net/qq853632587/article/details/111644295
途中遇到的坑参考博客:https://blog.csdn.net/wdquan19851029/article/details/116751027