seata学习(一) docker部署并注册到nacos

前言

一直都有关注分布式事务的解决方案,seata从去年的刚发布,整个生态已经发展的比较稳定,自己也抽空研究了一下如何把seata用Docker部署并注册到nacos,使用nacos配置中心。可参考seata官网

开始

一、拉取镜像

执行以下两条命令拉取官方Docker镜像

//搜索镜像
docker search seata

//拉取镜像
docker pull seataio/seata-server

二、挂载配置文件

为了方便自定义配置文件,需要把seata的配置文件挂在到宿主机

先把镜像跑起来,把容器里面的配置文件,复制一份到本机

docker run --name seata-server -p 8091:8091 seataio/seata-server:latest

docker cp seata-server:/seata-server /root/seata-config/

停止容器

docker stop seata-server

删除容器

docker rm seata-server

重新启动

docker run -d --name seata-server -p 8091:8091 -e SEATA_IP=122.51.97.239 -e SEATA_PORT=8091 -v /root/seata-config/seata-server/:/seata-server/ seataio/seata-server

三、注册seata到nacos上,并且使用nacos作为配置中心

  • 首先,修改目录/root/seata-config/seata-server/resources下的registry.conf文件

    registry {
      # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
      type = "nacos"
    
      nacos {
        application = "seata-server"
        serverAddr = ""
        namespace = ""
        cluster = "default"
        username = ""
        password = ""
      }
      
      file {
        name = "file.conf"
      }
    }
    
    config {
      # file、nacos 、apollo、zk、consul、etcd3
      type = "nacos"
    
      nacos {
        serverAddr = ""
        namespace = ""
        group = "SEATA_GROUP"
        username = ""
        password = ""
      }
      
      file {
        name = "file.conf"
      }
    }
    

    把其中的registry中type改为nacos,并修改nacos的服务地址等相关信息


  • 其次,把seata配置文件推送到nacos

    把以下文件nacos-cofig.sh和config.txt复制到服务器

    https://github.com/seata/seata/blob/develop/script/config-center/nacos/nacos-config.sh

  • config.txt是seata相关可配置信息

    我们可以选择其中几个推送到nacos

    如我选择了以下几个,数据库相关信息

    store.db.datasource=druid
    store.db.dbType=mysql
    store.db.driverClassName=com.mysql.jdbc.Driver
    store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
    store.db.user=username
    store.db.password=password
    store.db.minConn=5
    store.db.maxConn=30
    store.db.globalTable=global_table
    store.db.branchTable=branch_table
    store.db.queryLimit=100
    store.db.lockTable=lock_table
    store.db.maxWait=5000
    
  • nacos-cofig.sh是把推送配置到nacos的脚本文件

    注意修改nacos-cofig.sh文件里的config.txt文件地址

    for line in $(cat $(dirname "$PWD")/config.txt | sed s/[[:space:]]//g);
    

    ( d i r n a m e " (dirname " (dirname"PWD")更换成相应目录,然后执行

    sh nacos-config.sh -h 122.51.97.239 -p 8848 -g SEATA_GROUP
    

    执行完后,可以在nacos后台看到相应的seata配置文件,如下图

seata学习(一) docker部署并注册到nacos_第1张图片

seata学习(一) docker部署并注册到nacos_第2张图片

到这seata服务端的部署就完成了

结语

本文简单描述了seata服务端如何搭建并使用docker部署到linux服务器,关于Seata客户端如何集成到Springboot,SpringCloud项目中会在后续文章中

你可能感兴趣的:(事务,seata,java)