Docker安装配置Seata-Server

news/2024/11/19 13:21:13/文章来源:https://www.cnblogs.com/JavaEdge/p/18554638

1 部署

官方文档指引

1.1 client

每个业务数据库都要新建 undo_log 表。

对 springboot 应用,执行 client - MySQL - AT,切tag=1.5.2:

https://github.com/seata/seata/blob/v1.5.2/script/client/at/db/mysql.sql

1.2 server

新建 seata-for-hire 数据库,执行 server - MySQL:

https://github.com/seata/seata/blob/v1.5.2/script/server/db/mysql.sql

2 Docker

拉取镜像:

$ docker pull seataio/seata-server:1.5.2
1.5.2: Pulling from seataio/seata-server
e7c96db7181b: Already exists
f910a506b6cb: Already exists
b6abafe80f63: Pull complete
f9a900a85ba4: Pull complete
7d27a398a423: Pull complete
8fdfdcebe751: Pull complete
6df95cee0f43: Pull complete
5b571cda842d: Pull complete
Digest: sha256:90c7bae99eba72cdf42847b4812b2b03ade16eebfa33b87badd22a122542d647
Status: Downloaded newer image for seataio/seata-server:1.5.2
docker.io/seataio/seata-server:1.5.2

拷贝命令:

3 启动容器

$ docker run --name seata-server \
-p 8091:8091 \
-d seataio/seata-server:1.5.2
8a83dd2dec376ad884cb83470e99ede3c91dfecb0d6d5d3f1f5dd747b4965d6c$ docker ps
CONTAINER ID   IMAGE                        COMMAND                   CREATED          STATUS             PORTS                              NAMES
xx   seataio/seata-server:1.5.2   "xx"   51 seconds ago   Up 48 seconds      7091/tcp, 0.0.0.0:8091->8091/tcp   seata-server

4 配置

进入容器内部看配置文件:

$ docker exec -it seata-server sh
/seata-server # ls -l
total 16
drwxr-xr-x    6 root     root          4096 Jan  1  1970 classes
drwxr-xr-x    1 root     root          4096 Jan  1  1970 libs
drwxr-xr-x    6 root     root          4096 Jan  1  1970 resources
drwxr-xr-x    2 root     root          4096 Jun 20 07:07 sessionStore/seata-server # cd resources/
/seata-server/resources # ls -l
total 44
drwxr-xr-x    3 root     root          4096 Jan  1  1970 META-INF
-rw-r--r--    1 root     root          4471 Jan  1  1970 application.example.yml
-rw-r--r--    1 root     root           960 Jan  1  1970 application.yml
-rw-r--r--    1 root     root          2602 Jan  1  1970 logback-spring.xml

application.yml,要挂载它。退出容器,将刚才那个配置文件复制到宿主机:

$ docker cp seata-server:/seata-server/resources /Users/javaedge/Downloads/soft/seata/
Successfully copied 64.5kB to /Users/javaedge/Downloads/soft/seata/

这就复制到我的宿主机了:

注意 nacos(基于 PC 本地下载的 nacos 源码构建启动的) 的 ip:

修改新增这段配置:

server:port: 7091spring:application:name: seata-serverlogging: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: nacosnacos:server-addr: 172.17.0.2:8848namespace:group: SEATA_GROUPusername: nacospassword: nacosregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-serverserver-addr: 172.17.0.2:8848group: SEATA_GROUPnamespace:cluster: defaultusername: nacospassword: nacosstore:# support: file 、 db 、 redismode: dbdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/seata-for-hire?rewriteBatchedStatements=trueuser: rootpassword: 123456min-conn: 5max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 100max-wait: 5000
#  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

rewriteBatchedStatements

默认 false。无论 'allowMultiQueries' 设置如何,驱动是否应使用多查询,以及在调用 'executeBatch()' 时,是否应对 INSERT 和 REPLACE 类型的预备语句进行改写,把它们变为多值子句语句?

如果使用的是非预处理的简单声明,并且没有对输入数据进行妥善清理,这可能导致 SQL 注入。此外,对预备语句,如在使用 'PreparedStatement.set*Stream()' 时没有指定流长度,驱动将无法确定每批次的最优参数数量,并可能报错说生成的数据包过大。 对于仅包括 INSERT 或 REPLACE 语句的批次重写,'Statement.getGeneratedKeys()' 方法才有效果。

当同时用 "rewriteBatchedStatements=true"、"INSERT ... ON DUPLICATE KEY UPDATE" 对语句改写时,服务器对批量操作中所有受影响(或已找到)的行只会返回一个统一值,并且无法将之正确映射回最初的语句。此时,如果批量操作的总计数为零,驱动会为每一个批量语句返回 "0";如果总计数大于零,则返回 'Statement.SUCCESS_NO_INFO'。

Default Value false
Since Version 3.1.13

外部的配置文件修改完毕后,还要挂载,需要重建容器:

javaedge@JavaEdgedeMac-mini resources % docker stop seata-server
seata-serverjavaedge@JavaEdgedeMac-mini resources % docker rm seata-server
seata-server

启动容器:

javaedge@JavaEdgedeMac-mini resources % docker run --name seata-server \
-p 8091:8091 \
-p 7091:7091 \
-v /Users/javaedge/Downloads/soft/seata/resources://seata-server/resources \
-d seataio/seata-server:1.5.2
455c1a2d108e4e533359bda66b6c7c909366e7536dfe4b5e451e97626743f2e4javaedge@JavaEdgedeMac-mini resources % docker ps
CONTAINER ID   IMAGE                        COMMAND                   CREATED              STATUS              PORTS                                            NAMES
d2555578d828   seataio/seata-server:1.5.2   "java -Djava.securit…"   About a minute ago   Up About a minute   0.0.0.0:7091->7091/tcp, 0.0.0.0:8091->8091/tcp   seata-server

查看容器内日志,启动成功:

成功注册到 nacos:

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

  • 编程严选网

本文由博客一文多发平台 OpenWrite 发布!

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

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

相关文章

HHDB数据库介绍

背景 随着互联网的崛起,海量数据的存储、计算、分析需求越来越普遍。在各种计算机应用场景中,传统集中式数据库面临着理论升级和技术升级两大难题。21世纪以来,随着以 Hadoop及其衍生技术为代表的大规模数据处理技术的崛起,数据库技术开始由集中式走向分布式计算与存储的模…

【日记】每次修机器都有些头疼(721 字)

正文这一连几天都下雨,冷死了。基本上玩了一天。没怎么干活儿。下午打算写完至少一篇文章,结果难产了。晚上接到了搬去 5 楼的命令,这次没得商量。头疼。时间在明天晚上。晚上终于还是忍不住稍微动了一下,结果感觉膝盖的伤要复发了……又回到了书荒的状态。得找新书看了。M…

Flink 实战之 Real-Time DateHistogram

DateHistogram 用于根据日期或时间数据进行分桶聚合统计。它允许你将时间序列数据按照指定的时间间隔进行分组,从而生成统计信息,例如每小时、每天、每周或每月的数据分布情况。Elasticsearch 就支持 DateHistogram 聚合,在关系型数据库中,可以使用 GROUP BY 配合日期函数…

软路由 + NAS 实现日常生活办公

组网拓扑设备监控指标设备主要用途或部署服务 1. OpenWrtWireGuard VPN 组网从而实现内网穿透便于访问家庭局域网络; 懂得都懂; 运行一些 docker 小玩意。2. QNAP NASQuObjects 对象存储服务器:Typora 图床功能、Joplin 笔记远程同步; Plex Media Server:搭建个人的影音库…

数据采集实践4

课程链接 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology作业链接 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology/homework/13288gitee仓库链接 https://gitee.com/wd_b/party-soldier-data-collection/tree/master/…

违规生产检测视频分析服务器安全帽安全服检测批量操作功能教程

在工业自动化和智能化的浪潮中,视频监控系统正经历着从传统监控向智能监控的转变。视频分析服务器,作为这一转变的核心,正以其独特的优势在安全管理领域扮演着越来越重要的角色。本文将详细介绍视频分析服务器的技术特点、优势以及如何通过批量操作来提高监控效率和安全性。…

使用WebRTC技术搭建小型的视频聊天页面

目录目录 参考资料 什么是WebRTC? 能做什么? 架构图 个人理解(类比)核心知识点 核心知识点类比ICE框架 STUN(协议) NAT(网络地址转换) TURN SDP(会话描述协议) WebRTC的核心API现在开始做饭 准备阶段环境准备 服务器搭建 Coturn TURN server(开源服务) 部署 Signal Server信令…

HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信

自研原生鸿蒙NEXT5.0 API12 ArkTS仿微信app聊天模板HarmonyOSChat。 harmony-wechat原创重磅实战纯血鸿蒙OS ArkUI+ArkTs仿微信App聊天实例。包括聊天、通讯录、我、朋友圈等模块,实现类似微信消息UI布局、编辑器光标处输入文字+emo表情图片/GIF动图、图片预览、红包、语音/位…

Apache Dolphinscheduler数据质量源码分析

Apache DolphinScheduler 是一个分布式、易扩展的可视化数据工作流任务调度系统,广泛应用于数据调度和处理领域。 在大规模数据工程项目中,数据质量的管理至关重要,而 DolphinScheduler 也提供了数据质量检查的计算能力。本文将对 Apache DolphinScheduler 的数据质量模块进…

通过域名访问内网服务器

cloudflare优选ip访问家用服务器 前言 由于一直有使用markdown写笔记的需求,但是每次处理图片的时候总是很头疼。突然,我瞥见了还在角落里面吃灰小主机,因此萌生了废物利用想法,搭建一个外网可访问的图床。图床直接使用lsky-pro就可以,关键还是在外网访问上。 于是在网上看…

【算法】KMP 与 Z 函数

1. KMP 1.1 算法简介 可以做到线性匹配的快速匹配字符串的算法,并可以维护字符串最长公共前后缀,扩展出计算字符串周期。 在 OI 界 KMP 算法是字符串板块中很经典的算法,可以扩展出很多巧妙的解题技巧。 1.2 算法流程 1.2.1 字符串匹配 考虑 \(O(n^2)\) 暴力的匹配,瓶颈在于…

apifox使用小记

1.copy as cURL(cmd)之后在apifox里直接import cURL 2.调用时发生301错误 通常情况下是因为有session校验存在(用户校验)。解决方案: F12里将cookie里的session取到,在apifox里全局配置 这里踩了一个坑 第一次我是import了一个get请求,发送后发生301,所以我去设置了co…