[docker] 部署 Seata 分布式事务

news/2025/1/21 19:04:33/文章来源:https://www.cnblogs.com/yangyxd/p/18684284

docker 部署 Seata 分布式事务


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

一、环境准备

  • 部署好 mysql 服务
  • 部署好 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 pull ccr.ccs.tencentyun.com/shc-infrastructure/seata-server:1.5.2
  • 启动容器 (只是为了拿配置)
docker run -d -p 8091:8091 -p 7091:7091  --name seata-server ccr.ccs.tencentyun.com/shc-infrastructure/seata-server:1.5.2
mkdir -p /docker-app/seata/config
docker cp seata-server:/seata-server/resources /docker-app/seata/config

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

application.example.yml  application.yml  banner.txt  io  logback  logback-spring.xml  lua  META-INF  README.md  README-zh.md

2.2 获取 Seata 配置集并存入 nacos

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

https://gitee.com/seata-io/seata/blob/develop/script/config-center/config.txt

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

2.2.1 在 nacos 中创建命名空间

在 nacos 中创建命名空间 seata

2.2.2 在 nacos 中创建配置

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

...
# 使用db而不是默认的file
store.mode=db
# 修改数据库配置信息,这里的数据库后面会导入 (将数据库的账号密码及名字改对)
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://172.17.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=123456
...

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

2.3 数据库初始化

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

https://gitee.com/seata-io/seata/blob/develop/script/server/db/mysql.sql

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

2.3 配置 application.yml

server:port: 7091spring:application:name: seata-server  # 在nacos中配置的seata-server的名称logging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:# support: nacos, consul, apollo, zk, etcd3type: nacos  # 使用nacos作为配置中心nacos:server-addr: 172.17.0.1:8848  # seata访问nacos ,属于容器与容器的访问group: SEATA_GROUP # 指定配置文件在 nacos 中所属的分组namespace: seata # 指定配置文件在 nacos 中的命名空间username: nacospassword: nacosdata-id: seataServer.properties   # 指定配置文件在 nacos 中的名称registry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:  # 同registerapplication: seata-serverserver-addr: 172.17.0.1:8848group: SEATA_GROUPnamespace: seatacluster: defaultusername: nacospassword: nacosstore:# support: file 、 db 、 redismode: file
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

修改好配置文件后待用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872932.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信 Callkit 扩大测试范围;DeepSeek-R1 模型发布,性能对标 OpenAI o1 正式版丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

《操作系统真象还原》第九章 线程(一) 在内核中实现线程

本文是对《操作系统真象还原》第九章(一)学习的笔记,欢迎大家一起交流。第九章 线程(一) 在内核中实现线程 本文是对《操作系统真象还原》第九章(一)学习的笔记,欢迎大家一起交流。 我们在本节的任务:创建并初始化PCB 模拟pthread_create函数创建线程并执行线程函数首…

1.21 javaweb学习

今天学习了html中onsubmit的使用 onsubmit事件处理器是专门用于表单(form)的提交事件,所以要注意div标签是不能直接使用onsubmit的 今天在作业项目中出现了这样的问题,将onsubmit放在了div标签中,导致数据无法被正常处理,上传数据有误,修改至form后问题解决 修改前数据提…

思通数科舆情系统的分析报告主要内容及其市场价值探析

思通数科舆情系统的分析报告广泛应用于以下几个领域: (1) 企业品牌管理与危机预警:系统能够自动发出警报,为企业的公关部门提供应对策略和决策依据,帮助企业迅速做出反应,避免危机的进一步扩展。 (2) 政府舆情监管与社会治理:政府部门能够利用该系统的热点事件排名、舆情…

北汇信息致客户的一封感谢信

北汇信息致客户的一封感谢信尊敬的客户:感谢您选择北汇信息!2024年是不平凡的一年,中国汽车产量再创新高,出海与内卷挑战不断。北汇信息作为汽车电子测试领域的服务商,秉承“价值创造、共享成功”的理念,一直致力于为国内外汽车客户提供优质的产品和服务,共同面对这些挑…

001 修改博客园侧边栏的顺序

打开配置页:https://i.cnblogs.com/settings在“博客侧边栏公告”添加代码<script> $(document).ready(function(){//returnvar list=[sidebar_recentcomments,//最新评论sidebar_categories,//随笔分类、随笔档案sidebar_toptags,//我的标签sidebar_shortcut,//常用链接…

销售进阶:三步提问法,掌握客户心理

在销售行业,时间就是金钱,我们必须争分夺秒地搞定客户。但也不能盲目行动,而要稳扎稳打。关键在于快速抓住客户需求,而客户往往不会主动透露他们的需求,甚至自己都不清楚自己想要什么。这就需要我们通过巧妙的提问来破局,否则忙活半天也只是白费力气。 最让人头疼的是,跟…

寒假集训笔记 | | 第一课

C++STL --第一课 C标准库常用函数<cstring>memset() 暴力清空 char str[10]; memset(str,0,sizeof(str));<cmath>三角函数、指数函数、浮点取整函数<cstdlib>qsort() C语言快排 rand() 随机数 malloc() free() C语言动态内存分配<cctype>isdigit()…

Svelte 最新中文文档翻译(1)—— 概述与入门指南

前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

平面二连杆机构的动力学方程

动力学研究物体的运动和作用力之间的关系。机器人动力学问题有两类:一是已知机器人各关节的驱动力或力矩,求解机器人各关节的位置、速度和加速度,这是动力学正问题;二是已知各关节的位置、速度和加速度,求各关节所需的驱动力或力矩,这是动力学逆问题。机器人的动力学正问…

【红队】C2框架:Covenant

一、项目介绍 Covenant是一个.NET开发的C2(command and control)框架,旨在突出.NET的攻击面,并充当红队成员的协作命令和控制平台,该工具不仅支持Linux,MacOS和Windows,还支持docker容器,最特别的地方是支持动态编译,能够将输入的C#代码上传至C2 Server,获得编译后的文…

3. 使用sql查询csv/json文件内容,还能关联查询?

1. 简介 我们在前面的文章提到了calcite可以支持文件系统的数据源适配, 其实官方已经提供了相应的能力, 其支持csv和json的查询适配, 废话不多说, 直接展示. 2. Maven <!-- calcite文件系统支持 --> <dependency><groupId>org.apache.calcite</groupId>…