Docker安装Seata分布式事务

x33g5p2x  于2022-04-26 转载在 Docker  
字(2.0k)|赞(0)|评价(0)|浏览(444)

1、简介

之前已经对分布式事务Seata做了详细介绍,可参考:
   分布式事务解决方案:Spring Cloud + Nacos + Seata整合

接下来直接上手,Docker安装部署Seata。

2、下载镜像

  1. docker pull seataio/seata-server:1.4.2

3、启动容器

  1. docker run -d --name seata-server -p 8091:8091 seataio/seata-server:1.4.2

4、拷贝文件

  1. docker cp seata-server:/seata-server /docker-data/seata

5、修改配置文件

(1)修改配置文件/docker-data/seata/resources/registry.conf,改为Nacos信息。

  1. registry {
  2. # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  3. type = "nacos"
  4. nacos {
  5. application = "seata-server"
  6. serverAddr = "127.0.0.1:8848"
  7. group = "SEATA_GROUP"
  8. namespace = ""
  9. cluster = "default"
  10. username = "nacos"
  11. password = "nacos"
  12. }
  13. ......
  14. config {
  15. # file、nacos 、apollo、zk、consul、etcd3
  16. type = "nacos"
  17. nacos {
  18. serverAddr = "127.0.0.1:8848"
  19. namespace = ""
  20. group = "SEATA_GROUP"
  21. username = "nacos"
  22. password = "nacos"
  23. dataId = "seataServer.properties"
  24. }
  25. }

(2)修改配置文件/docker-data/seata/resources/file.conf,改为DB信息。

  1. ## transaction log store, only used in seata-server
  2. store {
  3. ## store mode: file、db、redis
  4. mode = "db"
  5. ......
  6. ## database store property
  7. db {
  8. ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.
  9. datasource = "druid"
  10. ## mysql/oracle/postgresql/h2/oceanbase etc.
  11. dbType = "mysql"
  12. driverClassName = "com.mysql.cj.jdbc.Driver"
  13. ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
  14. url = "jdbc:mysql://localhost:3306/seata?rewriteBatchedStatements=true"
  15. user = "root"
  16. password = "root"
  17. minConn = 5
  18. maxConn = 100
  19. globalTable = "global_table"
  20. branchTable = "branch_table"
  21. lockTable = "lock_table"
  22. queryLimit = 100
  23. maxWait = 5000
  24. }
  25. ......
  26. }

6、停掉旧容器

  1. docker stop seata-server
  2. docker rm seata-server

7、启动新容器

  1. docker run -d \
  2. --restart always \
  3. --name seata-server \
  4. -p 8091:8091 \
  5. -v /docker-data/seata:/seata-server \
  6. -e SEATA_IP=外网IP \
  7. -e SEATA_PORT=8091 \
  8. seataio/seata-server:1.4.2

注意: 遇到的坑,如果是部署云服务器,没有设置SEATA_IP,默认注册的是docker的内网ip,seata启动虽然没有问题,但是微服务项目启动连接时,会报错can not register RM,err:can not connect to services-server.

8、查看Nacos注册情况

相关文章

最新文章

更多