docker安装seata

1.准备数据库表


-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(`xid`                       VARCHAR(128) NOT NULL,`transaction_id`            BIGINT,`status`                    TINYINT      NOT NULL,`application_id`            VARCHAR(32),`transaction_service_group` VARCHAR(32),`transaction_name`          VARCHAR(128),`timeout`                   INT,`begin_time`                BIGINT,`application_data`          VARCHAR(2000),`gmt_create`                DATETIME,`gmt_modified`              DATETIME,PRIMARY KEY (`xid`),KEY `idx_status_gmt_modified` (`status` , `gmt_modified`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id`         BIGINT       NOT NULL,`xid`               VARCHAR(128) NOT NULL,`transaction_id`    BIGINT,`resource_group_id` VARCHAR(32),`resource_id`       VARCHAR(256),`branch_type`       VARCHAR(8),`status`            TINYINT,`client_id`         VARCHAR(64),`application_data`  VARCHAR(2000),`gmt_create`        DATETIME(6),`gmt_modified`      DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key`        VARCHAR(128) NOT NULL,`xid`            VARCHAR(128),`transaction_id` BIGINT,`branch_id`      BIGINT       NOT NULL,`resource_id`    VARCHAR(256),`table_name`     VARCHAR(32),`pk`             VARCHAR(36),`status`         TINYINT      NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',`gmt_create`     DATETIME,`gmt_modified`   DATETIME,PRIMARY KEY (`row_key`),KEY `idx_status` (`status`),KEY `idx_branch_id` (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;CREATE TABLE IF NOT EXISTS `distributed_lock`
(`lock_key`       CHAR(20) NOT NULL,`lock_value`     VARCHAR(20) NOT NULL,`expire`         BIGINT,primary key (`lock_key`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);SET FOREIGN_KEY_CHECKS = 1;

2.准备配置文件

创建挂载目录:

mkdir -p /data/seata/conf

先运行,获取配置

docker run -d -p 8091:8091 -p 7091:7091 --name seata seataio/seata-server:1.5.2

将配置文件拷贝到挂载目录:

docker cp seata:/seata-server/resources/. /data/seata/conf

我们可以看到有个application.yml文件

方便就先下载下来将这介个配置更改:

更改后:

server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${log.home:${user.home}/logs/seata}extend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:type: nacosnacos:server-addr: 192.168.152.130:8848namespace:group: DEFAULT_GROUPusername: nacospassword: nacosregistry:type: nacosnacos:application: seata-serverserver-addr: 192.168.152.130:8848group: DEFAULT_GROUPnamespace:cluster: defaultusername: nacospassword: nacosstore:mode: dbdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.152.130:3306/seata-config?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueuser: rootpassword: 123456min-conn: 10max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 1000max-wait: 5000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/metadata/v1/**

然后删除容器:

docker rm -f seata

接着再次运行:

3.启动

docker run -d --name seata \-p 8091:8091 \-p 7091:7091 \--privileged=true \-e SEATA_IP=192.168.152.130 \-e JVM_XMS=256m -e JVM_XMX=256m \-e MODE=standalone \-v /data/seata/conf/:/seata-server/resources \--restart=always \seataio/seata-server:1.5.2

命令解析

  • docker run -d:
    该命令用于后台运行容器,-d 参数表示在后台启动容器。
  • --name seata:
    设置容器的名称为 seata。你可以通过该名称来管理容器(例如停止、重启等)。
  • -p 8091:8091 -p 7091:7091:
    将容器的 8091 端口和 7091 端口映射到主机的相同端口。这通常是为了 Seata 服务器的服务端口和管理端口能够对外开放。
  • --privileged=true:
    该参数允许容器获得额外的权限,通常用于需要较高权限操作的容器。一般来说,除非必要,不建议使用这个选项,因为它会给容器更多的权限,可能存在安全风险。
  • -e SEATA_IP=192.168.152.130:
    设置环境变量 SEATA_IP192.168.152.130,表示 Seata 服务器的 IP 地址。
  • -e JVM_XMS=256m -e JVM_XMX=256m:
    设置 JVM 的初始内存 (XMS) 和最大内存 (XMX) 都为 256MB。通过这些参数调整容器中运行 Seata 服务的内存配置。
  • -e MODE=standalone:
    设置 Seata 的运行模式为 standalone,即单机模式。Seata 也支持集群模式,通过设置其他参数可以启用。
  • -v /data/seata/logs/:/seata-server/resources:
    通过卷挂载,将主机的 /data/seata/logs/ 目录挂载到容器内的 /seata-server/resources 目录。这意味着容器中的日志文件会保存到主机上指定的目录,便于日志管理和持久化。
  • --restart=always:
    设置容器的重启策略为 always,即容器如果停止或崩溃,Docker 会自动重启容器。这对于需要持续运行的服务非常有用。
  • seataio/seata-server:1.5.2:
    指定要使用的 Seata 服务器 Docker 镜像及其版本号。这里使用的是 seataio/seata-server 镜像,版本为 1.5.2

我们可以在nacos上看到注册成功

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

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

相关文章

达梦数据库常用指令都是工作中常用的

达梦数据库连接配置文件名称 cd /etc/dm_svc.conf查询 sql 日志记录是否开启:0 关闭,1/2/3开启); select SF_GET_PARA_VALUE(1,SVR_LOG)union ALL select SF_GET_PARA_VALUE(2,SVR_LOG);关闭 sql 日志记录功能 call SP_SET_PARA_VALUE(1,SVR_LOG,0);开…

大语言模型---Dropout 的定义;Dropout 减少过拟合的原因;Dropout 的实现

文章目录 1. Dropout 的定义2. Dropout 减少过拟合的原因3. Dropout 的实现 1. Dropout 的定义 Dropout 是一种简单而有效的正则化技术,通过在每次训练迭代中随机丢弃(即屏蔽)一部分神经元,强制模型在没有某些特定神经元参与的情…

MVC core 传值session

MVC Entity Framework MVC Core session 》》 需要添加 Session 服务 和 Session中间件 builder.Services.AddSession(); app.UseSession(); 》》》控制器中 public IActionResult Privacy(){HttpContext.Session.SetString("key", "123");return View(…

电气火灾式故障电弧探测器在某医院照明回路中的应用

安科瑞 Acrel-Tu1990 摘要:电气火灾式故障电弧探测器(以下简称“探测器”)能够对连接至其的电路中的故障电弧(包括故障并联电弧和故障串联电弧)进行精确检测。一旦探测到可能导致火灾的故障电弧,探测器将启…

RNN And CNN通识

CNN And RNN RNN And CNN通识一、卷积神经网络(Convolutional Neural Networks,CNN)1. 诞生背景2. 核心思想和原理(1)基本结构:(2)核心公式:(3)关…

大数据营销

大数据营销是一个热门的大数据应用。对于多数企业而言,大数据营销的主要价值源于以下几个方面。 市场预测与决策分析支持 数据对市场预测及决策分析的支持,早就在数据分析与数据挖掘盛行的年代被提出过。沃尔玛著名的“啤酒与尿布”案例就是那个时候的杰…

手机控制载货汽车一键启动无钥匙进入广泛应用

移动管家载货汽车一键启动无钥匙进入手机控车系统‌, 该系统广泛应用于物流运输、工程作业等货车场景,为车主提供了高效、便捷的启动和熄火解决方案,体现了科技进步对物流行业的积极影响‌ 核心功能‌:简化启动流程,提…

SSE基础配置与使用

什么是 Server-Sent Events (SSE) **Server-Sent Events (SSE) **是一种轻量的服务器向客户端推送消息的机制,基于 HTTP 协议实现单向通信,适用于需要实时更新的场景。 与 WebSocket 不同,SSE 只允许服务器向客户端发送数据,因此…

基于python爬虫的智慧人才数据分析系统

废话不多说,先看效果图 更多效果图可私信我获取 源码分享 import os import sysdef main():"""Run administrative tasks."""os.environ.setdefault(DJANGO_SETTINGS_MODULE, 智慧人才数据分析系统.settings)try:from django.core.m…

聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透

一、触发器(Trigger) Trigger 决定了一个窗口(由 window assigner 定义)何时可以被 window function 处理。 每个 WindowAssigner 都有一个默认的 Trigger。 如果默认 trigger 无法满足你的需要,你可以在 trigger(…) 调用中指定自定义的 tr…

用Python做数据分析环境搭建及工具使用(Jupyter)

目录 一、Anaconda下载、安装 二、Jupyter 打开 三、Jupyter 常用快捷键 3.1 创建控制台 3.2 命令行模式下的快捷键 3.3 运行模式下快捷键 3.4 代码模式和笔记模式 3.5 编写Python代码 一、Anaconda下载、安装 【最新最全】Anaconda安装python环境_anaconda配置python…

基于51单片机的电子秤设计

本设计以STC89C52RC芯片作为主要的控制芯片;通过电阻应变式传感器实现物品的测量功能;通过HX711型A/D转换器完成模拟信号到数字信号之间的转换;矩阵按键实现单片机复位、物品单价输入等系列操作;LCD1602液晶显示屏可以实现测量结果…

ip租期到了

当IP租约到期后,会发生以下过程: 租约到期通知:在租约到期之前,DHCP客户端通常会尝试续租其IP地址。如果客户端仍然活跃并且希望继续使用相同的IP地址,它会向DHCP服务器发送一个DHCP请求(DHCPREQUEST&#…

spring boot如何进行安全测试和渗透测试?

进行安全测试和渗透测试是确保应用程序安全的重要步骤。以下是一些常见的方法和工具,下面小编给大家编写了一个安全测试方法 文章目录 安全测试1. **静态应用安全测试 (SAST)**2. **动态应用安全测试 (DAST)**3. **依赖检查** 渗透测试1. **规划与侦察**2. **漏洞扫…

动态加载Jar包引发的“java.util.zip.ZipException: invalid distance too far back”

当我们用Java语言编写插件容器时,需要动态加载与卸载jar包插件。如果jar包插件中的类存在读取Jar包内打包的资源文件的情况。那么当你升级Jar包插件并再次装载插件时,可能会碰到读取jar包内文件的代码处抛出“java.util.zip.ZipException: invalid dista…

【如何提升代码工程质量】code review篇

应该对于基本上所有软件相关的公司来说,都有committer机制,即代码写好之后会提交合并请求,待相关人员code review通过后再进行合入,所以code review就是代码合入代码仓库的最后一道关卡,对于代码质量的影响也是不容忽视…

原子类、AtomicLong、AtomicReference、AtomicIntegerFieldUpdater、LongAdder

原子类 JDK提供的原子类,即Atomic*类有很多,大体可做如下分类: 形式类别举例Atomic*基本类型原子类AtomicInteger、AtomicLong、AtomicBooleanAtomic*Array数组类型原子类AtomicIntegerArray、AtomicLongArray、AtomicReferenceArrayAtomic…

ClickHouse数据迁移(远程)

一、背景 公司最近买了新的服务器,旧的服务器上面安装了ClickHouse22.2.2.1,新的服务器上面安装了ClickHouse24.9.2.42,两个版本之间要做历史数据迁移 旧服务器:80(IP最后一段,以下代称),ClickHouse版本&am…

Spring Boot日志总结

文章目录 1.我们的日志2.日志的作用3.使用日志对象打印日志4.日志框架介绍5.深入理解门面模式(外观模式)6.日志格式的说明7.日志级别7.1日志级别分类7.2配置文件添加日志级别 8.日志持久化9.日志文件的拆分9.1官方文档9.2IDEA演示文件分割 10.日志格式的配置11.更简单的日志输入…

「Qt Widget中文示例指南」如何为窗口实现流程布局?(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将展示如何为不…