docker部署seata-sever流程


 

 

用docker部署seata的時候遇見了一個大坑,不過,有了上次的經驗,處理比較方便

下面的流程誤會盡量詳細

問題:seata是怎么部署的

一開始我看文章,以為seata是和sentinel一樣的方式,其實不然,它的服務端是獨立的需要單獨配置

這里都是使用的最新版seata

第一步:下載seata的源碼 https://github.com/seata/seata.git 

進入目錄seata\script\config-center

找到文件 config.txt

 

# 修改存儲模式為數據庫存儲
store.mode=db
# 指定數據庫為mysql,其他數據庫類型根據自身情況修改
store.db.dbType=mysql
# 指定引擎,mysql8以下為com.mysql.jdbc.Driver,mysql8為com.mysql.cj.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://{ip}:3306/{db_name}?useUnicode=true
store.db.user={db_user}
store.db.password={db_password}

 

 

 

 

 持久化方式為mysql,修改這里的配置,注意!!!!

如果是用的docker部署mysql,在沒有創建容器網絡的情況下

 容器之間的訪問不是127.0.0.1

在容器中使用 ping docker.host internal

找到宿主機的局域網ip

配置完這一步之后

轉到seata\script\config-center\nacos

 

 

sh nacos-config.sh -h {nacos服務的host} -u {nacos用戶名} -w {nacos密碼}

運行sh文件,這一步是把這個txt文件中的內容上傳至nacos的配置中心

  在宿主機運行的時候這個nacos地址可以用127.0.0.1:8848

查看nacos的配置列表

 

第二步

目錄 seata\script\server\config

 

 

 

 

 

 

 

 

 

我是將nacos作為注冊和配置中心

所以只需要修改registry.conf這個文件

 

 

 

 

數據庫初始化

eata\test\src\test\resources\saga\sql

這個文件下面有mysql的初始sql

新建一個數據庫名字就叫seata

 

 將修改后的registry.conf文件復制到容器的seata-server/resources目錄下

然后在docker中運行seata,注意需要開放8091端口

也可以使用docker-compose的方式

version: "1.0"
services:
    # 分布式事務服務
    seata-server:
        image: seataio/seata-server
        ports:
            - "8091:8091"
        environment:
            #宿主機ip
            - SEATA_IP={宿主機host}
            - SEATA_PORT=8091
            - STORE_MODE=db
        volumes:
            # 復制文件到容器
            - "./seata_server/resources/registry.conf:/seata-server/resources/registry.conf"
            # 日志文件夾
            - "./seata_server/logs:/root/logs/seata"

啟動完成后去nacos查看

 

 出現seata-server表示服務端注冊成功

可能會有遺漏,有問題可以在評論告知

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM