首先拉取seata的docker镜像.
docker pull seataio/seata-server
单机版部署
单机版本部署非常简单;命令如下
docker run -d --name seata-server -p 8091:8091 -e SEATA_IP=192.168.56.101 seataio/seata-server:latest
高可用集群版本部署
Seata的高可用依赖于注册中心、配置中心和数据库来实现;因此我们需要修改相关的配置。下面我们以nacos和Redis为例子,Seata-Server使用注册中心进行集群间的通信,同时将事务数据保存到Redis中让整个集群统一使用事务信息。
下面的示例未使用配置中心,如果需要使用的话相关配置见 https://github.com/seata/seata/tree/develop/script/config-center
创建配置文件 registry.conf
示例:
registry {
type = "nacos"
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10
nacos {
application = "seata-server"
serverAddr = "192.168.56.1:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = ""
password = ""
}
}
config {
type = "file"
file {
name = "file:/root/seata-config/file.conf"
}
}
创建配置文件 file.conf
示例:
store {
mode = "redis"
redis {
host = "192.168.56.1"
port = "6379"
password = "123456"
database = "0"
minConn = 1
maxConn = 10
maxTotal = 100
queryLimit = 100
}
}
启动服务
docker run -d --name seata-server -p 8091:8091 -e SEATA_IP=192.168.56.101 \
-e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
-v /home/app/seata-cluster:/root/seata-config seataio/seata-server:latest
注意如果使用的是数据库MySQL的话,需要注意数据库的版本,seata镜像中的MySQL驱动是5.x的,如果数据库使用的是8.x的话,需要自己手动去制作镜像。同时服务器内存至少2G以上。