官方配置文档:
go.
① Mysql配置
seata需要使用mysql存储日志信息。
启动mysql: docker run --name seata-mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 设置mysql密码为123456
主机Mysql客户端连接虚拟机Linux的Mysql,并新建一个名为seata数据库(数据库名与seata的file.conf配置有关),运行seata的mysql脚本即可。
② Nacos配置
以单机模式启动nacos
docker run --name nacos-pay-cloud -d -p 8848:8848 -e MODE=standalone nacos/nacos-server:1.3.2
③ Seata配置
① 下载Seata
docker pull seataio/seata-server:1.4.2
② 启动Seata
docker run --name seata -d -p 8091:8091 seataio/seata-server:1.4.2
③ 拷贝Seata配置文件到本地
docker cp seata:/seata-server/resource /usr/etc/seata 同时移除已启动的seata容器 (-rf表示强制移除已经启动的容器并且无提示信息) docker rm -rf seata
④ 编辑本地/usr/etc/seata/registry.conf配置文件
#剩余的其他配置可以删除
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos" #将注册中心改为nacos
nacos {
application = "CLOUD-ALIBABA-SEATA" #注册进nacos的实例名称
serverAddr = "192.168.0.112:8848" #nacos注册中心ip
group = "SEATA_GROUP" #注册进nacos的分组名称 无需修改
namespace = "" #命名空间
cluster = "default" #集群模式
username = "nacos" #nacos登陆账号
password = "nacos" #nacos登陆密码
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "file" #将配置选为file 文件形式
file {
#使用自定义配置文件时 必须指定配置文件路径 且需以file:开头
name = "file:/seata-server/resource/file.conf" #file.conf在docker容器里的位置 且位置必须
}
}
⑤ 编辑本地/usr/etc/seata/file.conf配置文件
#其他配置信息可以删除
store {
## store mode: file、db、redis
mode = "db" #将日志存储形式改为数据库存储
## rsa decryption public key
publicKey = ""
## database store property
db {
#以下是mysql连接配置信息 已标注出需要修改的字段
datasource = "druid"
dbType = "mysql"
driverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://192.168.0.112:3306/seata?rewriteBatchedStatements=true" #数据库连接地址 需要修改
user = "root" #数据库连接账号 需要修改
password = "123456" #数据库连接密码 需要修改
minConn = 5
maxConn = 100
globalTable = "global_table"
branchTable = "branch_table"
lockTable = "lock_table"
queryLimit = 100
maxWait = 5000
}
}
⑥ 启动seata
使用自定义配置文件时必须指定环境变量 SEATA_CONFIG_NAME, 并且值需要以file:开始
docker run --name seata -p 8091:8091 \ -e SEATA_CONFIG_NAME=file:/seata-server/resource/registry \ -e SEATA_IP=192.168.0.150 \ -v /usr/etc/seata:/seata-server/resource \ seataio/seata-server:1.4.2
最好配置一下SEATA_IP,否则注册进nacos的ip将是docker容器内的ip
seata-server 支持以下环境变量:
-
SEATA_IP 可选, 指定seata-server启动的IP, 该IP用于向注册中心注册时使用, 如eureka等 -
SEATA_PORT 可选, 指定seata-server启动的端口, 默认为 8091 -
STORE_MODE 可选, 指定seata-server的事务日志存储方式, 支持db ,file,redis(Seata-Server 1.3及以上版本支持), 默认是 file -
SERVER_NODE 可选, 用于指定seata-server节点ID, 如 1,2,3…, 默认为 根据ip生成 -
SEATA_ENV 可选, 指定 seata-server 运行环境, 如 dev, test 等, 服务启动时会使用 registry-dev.conf 这样的配置 -
SEATA_CONFIG_NAME 可选, 指定配置文件位置, 如 file:/root/registry, 将会加载 /root/registry.conf 作为配置文件,如果需要同时指定 file.conf文件,需要将registry.conf的config.file.name的值改为类似file:/root/file.conf:
结果图
|