通过github下载安装包:https://github.com/seata/seata/releases/tag/v1.3.0 seate中文文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html
将下载的安装包上传到服务器,解压缩即可;
进入conf
目录,主要修改file.conf
和registry.conf
由于小编想要整合nacos注册中心,故这里选择nacos配置项,如下:
registry {
type = "nacos"
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10
nacos {
application = "seata-server"
serverAddr = "127.0.0.1:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
}
}
config {
type = "file"
file {
name = "file.conf"
}
}
type:换成自己整合的注册中心,例如nacos; serverAddr:服务注册地址,nacos服务所在服务器IP;
配置项如下:
修改mode改为db
;然后修改db配置中的MySQL相关配置信息
;
store {
mode = "db"
## database store property
db {
datasource = "druid"
dbType = "mysql"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://127.0.0.1:3306/seata?useSSL=false&serverTimezone=UTC"
user = "root"
password = "123456"
minConn = 5
maxConn = 100
globalTable = "global_table"
branchTable = "branch_table"
lockTable = "lock_table"
queryLimit = 100
maxWait = 5000
}
}
seata
数据库(名称可以是其他的,只要上面的配置能够对应上即可);global_table
、branch_table
和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,
`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;
启动seata server
的脚本位于bin
文件内,Linux/Mac
环境使用seata-server.sh
脚本启动;
Windows环境使用seata-server.bat
脚本启动。
Linux/Mac启动方式示例如下所示:
nohup sh seata-server.sh -p 8091 -h 127.0.0.1
命令说明:
通过nohup
命令让seata server在系统后台运行。
脚本参数:
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file /opt/software/seata/logs/seata_gc.log due to No such file or directory
意思是没有存在日志目录,故按照报错日志建立对应的日志目录;
com.mysql.cj.jdbc.Driver
seata/lib
自带的jar为:
下载新的mysql-connect包: mysql官网下载地址:https://dev.mysql.com/downloads/connector/j/
选择对应的MySQL版本,选择系统平台:Platform Independent,下载后解压缩;
把该Jar包上传到服务器替换seata自带的MySQL-connector依赖即可;
经过上面的踩坑解决后,再次运行seata命令sh ./bin/seata-server.sh -p 8091 -h IP
,如图:
表明seata启动成功,注意这里是非后台运行。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有