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);
    

    (dirname"(dirname "PWD")更換成相應目錄,然後執行

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

    執行完後,可以在nacos後臺看到相應的seata配置文件,如下圖

企業微信截圖_15927926284716.png

企業微信截圖_159203474722.png

到這seata服務端的部署就完成了

結語

本文簡單描述了seata服務端如何搭建並使用docker部署到linux服務器,關於Seata客戶端如何集成到Springboot,SpringCloud項目中會在後續文章中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章