使用 docker-compose 部署 Seata Server
注意事项
- 避免直接拉取latest版本镜像,latest版本并不一定是稳定版本,为避免不必要的问题,请到docker镜像仓库确定要拉取的镜像版本。
快速开始
无注册中心,file存储
该模式下,不需要注册中心,也不需要任何第三方存储中心。
docker-compose.yaml
version: "3.1"
services:
seata-server:
image: seataio/seata-server:${latest-release-version}
hostname: seata-server
ports:
- "8091:8091"
environment:
- SEATA_PORT=8091
- STORE_MODE=file
无注册中心,DB存储
db模式需要在数据库创建对应的表结构,[建表脚本]。
(1)准备file.conf配置文件
更多存储模式支持可参考更多存储模式
# 存储模式
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
# 需要根据mysql的版本调整driverClassName
# mysql8及以上版本对应的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意根据生产实际情况调整参数host和port
store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
# 数据库用户名
store.db.user=
# 用户名密码
store.db.password=
(2)准备registry.conf文件
更多注册中心支持可参考注册中心
更多配置中心支持可参考配置中心
直连模式(无注册中心)
registry {
type = "file"
}
config {
type = "file"
file {
name="file:/root/seata-config/file.conf"
}
}
(3)准备docker-compose.yaml文件
version: "3.1"
services:
seata-server:
image: seataio/seata-server:${latest-release-version}
hostname: seata-server
ports:
- "8091:8091"
environment:
- SEATA_PORT=8091
- SEATA_CONFIG_NAME=file:/root/seata-config/registry
volumes:
# 需要把file.conf和registry.conf都放到./seata-server/config文件夹中
- "./seata-server/config:/root/seata-config"
nacos注册中心,db存储
db模式需要在数据库创建对应的表结构,[建表脚本]。
(1)准备registry.conf文件
nacos注册中心。
更多注册中心支持可参考注册中心
更多配置中心支持可参考配置中心
registry {
type = "nacos"
nacos {
# seata服务注册在nacos上的别名,客户端通过该别名调用服务
application = "seata-server"
# 请根据实际生产环境配置nacos服务的ip和端口
serverAddr = "127.0.0.1:8848"
# nacos上指定的namespace
namespace = ""
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
type = "nacos"
nacos {
# 请根据实际生产环境配置nacos服务的ip和端口
serverAddr = "127.0.0.1:8848"
# nacos上指定的namespace
namespace = ""
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
# 从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项
dataId: "seataServer.properties"
}
}
(2)准备nacos配置中心配置
更多存储模式支持可参考更多存储模式
你需要在nacos新建配置,此处dataId为seataServer.properties
# 存储模式
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
# 需要根据mysql的版本调整driverClassName
# mysql8及以上版本对应的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意根据生产实际情况调整参数host和port
store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
# 数据库用户名
store.db.user=
# 用户名密码
store.db.password=