由于我用nacos作为注册中心,所有该文章以nacos为基础进行seata基础配置。nacso环境搭建此处不做过多讲解。
配置文件说明
解压seata压缩包后,进入conf文件夹下可以看到如下文件
registry.conf
registry.conf为seata的注册文件。配置信息如下
file.conf
file.conf为配置文件。此处将file.conf的信息配置入nacos中,所有file.conf文件可以不做配置。
但是需要将file中的信息配置入nacos,还需两个文件config.txt,和nacos-config.sh下载地址见文末。下载后将文件放入seata/conf目录下。
config.txt
配置信息如下
载入seata配置到 nacos,运行命令
sh nacos-config.sh -h 127.0.0.1 -t 5d304c31-67d5-479a-a064-6ad7d0c8
-h nacos ip
-t nacos命名空间
如果报找不到config.txt文件,只需将config.txt文件移到上一级目录即可。成功后可以在nacos中查看到如下信息
导入seata所需的数据库。并在每个服务的数据库中导入undo_log表(见文末)。
https://github.com/seata/seata/blob/develop/script/server/db/mysql.sql
启动seata服务,成功后可在nacos中查看
启动seata: sh seata-server.sh -p 18091 -h 127.0.0.1 -m file
后台启动 :nohup ./seata-server.sh -p 18091 -h 127.0.0.1 -m file >nohup.out 2>1 &
-h seata ip
-p seata 端口
项目配置
SEATA成功后,将registry.conf拷贝到resource下。并配置bootstrap.yml。
此处service-group 配置需和config.txt中的vgroupMapping对应(seata1.0之前为vgroup_mapping)
之后配置seata的pom文件,版本需要和服务器的一致。不然会报错。
最后配置数据源代理,在启动项目即可。此处不做过多详解。
可参考
config.txt 和nacos-config.sh下载地址
https://github.com/seata/seata/tree/develop/script/config-center
https://github.com/seata/seata/tree/develop/script/config-center/nacos
undo_log表
CREATE TABLE
undo_log
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
branch_id
bigint(20) NOT NULL,
xid
varchar(100) NOT NULL,
context
varchar(128) NOT NULL,
rollback_info
longblob NOT NULL,
log_status
int(11) NOT NULL,
log_created
datetime NOT NULL,
log_modified
datetime NOT NULL,
ext
varchar(100) DEFAULT NULL,
PRIMARY KEY (id
),
UNIQUE KEYux_undo_log
(xid
,branch_id
)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;