基于Docker部署Seata


首先拉取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以上。


特别提醒:扫码关注微信订阅号'起岸星辰',实时掌握IT业界技术资讯! 转载请保留原文中的链接!
  目录