一切福田,不離方寸,從心而覓,感無不通。

Docker 部署 Seata 分布式事务

在使用 Docker 部署 Seata 并与 Nacos 配置中心结合时,你可以通过以下步骤来实现。Seata 是一个开源的分布式事务解决方案,而 Nacos 是阿里巴巴开源的一个动态服务发现、配置和服务管理平台。

一、环境准备

二、部署 Seata

示例使用 Seata 版本 1.5.2。由于 docker 官方仓库在国内已经无法使用,所以基础镜像使用了阿里云的。

2.1 创建配置

有两个方法可以拿到默认的配置文件:

2.1.1 从 Seata 开源仓库获取

可以克隆 https://gitee.com/seata-io/seata (这是国内的镜像仓库)到本地,配置文件目录在 server/src/main/resources 中。

2.1.2 从容器中获取

  • 拉取镜像

  • 启动容器 (只是为了拿配置)

这里就可以在宿主机的 /docker-app/seata/config 有以下文件了:

2.2 获取 Seata 配置集并存入 nacos

我们从 seata 仓库中获取 config.txt,并修改其中 mysql 数据库配置。

如果之前是使用 2.1.1 方式,可以直接在相应目录找到这个文件。

2.2.1 在 nacos 中创建命名空间

在 nacos 中创建命名空间 seata

2.2.2 在 nacos 中创建配置

修改 config.txt 中的数据库配置。

在 nacos 配置管理中,给命名空间 seata 中添加配置 seataServer.properties , Group 设置为 SEATA_GROUP,并将 config.txt 的内容全部复制进来:

2.3 数据库初始化

在上面的 2.2.2 中我们指定了数据库,所以我们需要创建一个 seata 的数据库:

执行这个 sql 脚本进行数据库初始化。

2.4 配置 application.yml

请参考下面的示例修改,使用 nacos 配置。需要注意的时,如果你的 nacos 不需要账号密码登录,这里就直接留空。

2.5 启动 Seata

如果已经启动过容器(比如之前为了拿配置),先删除:

启动容器:

注意:

  1. 因为 Seata 是部署在容器中,那在真机上想要访问,seata-server 暴露给 nacos 注册中心的地址应该是容器映射到真机后实际能访问的IP地址,所以 SEATA_IP 要设置成这个IP地址。
  2. -v /docker-app/seata/config/resources:/seata-server/resources 是将本地存放的配置文件映射到容器中。但如果是在 windows 中使用 docker.desktop 的 WSL,则这样的映射是无效的,需要将 application.yml 复制到容器中进行替换:

2.6 部署完成

容器启动成功后,如果报错,请根据报错信息,检查数据库、nacos等配置是否正确。启动成功后,就可以在浏览器中查看状态了:

http://localhost:7091/

默认的用户名和密码都是 seata 。

登录后:

 

from:https://www.cnblogs.com/yangyxd/p/18684284