部署TC服务 服务集成Seata

news2024/9/20 1:12:55

一、部署TC服务

        tc在管理全局事务和分支事务是需要记录,最好放在数据库中持久保存

1.创建数据库表

创建一个名为Seata的库建立四张表

语句如下

CREATE DATABASE IF NOT EXISTS `seata`;
USE `seata`;

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 = InnoDB
  DEFAULT CHARSET = utf8mb4;


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 = InnoDB
  DEFAULT CHARSET = utf8mb4;


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_and_branch_id` (`xid` , `branch_id`)
) ENGINE = InnoDB
  DEFAULT 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 = InnoDB
  DEFAULT 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);

2.拉取镜像

docker pull seata

3.创建容器并加入网络

docker run --name seata \
-p 8099:8099 \
-p 7099:7099 \
-e SEATA_IP=192.168.88.139 \
-v ./seata:/seata-server/resources \
--privileged=true \
--network xxxde \
-d \
seataio/seata-server:1.5.2

4.访问

访问7099端口,为seata的控制台端口

账号密码为admin 

nacos中也可以看到对应的stata

二、项目集成Seata

1.引入依赖

 <!--seata-->
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  </dependency>

2.配置地址

可以直接在nacos中配置共享配置

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

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

相关文章

【PGCCC】Postgres 17 中的 3 大特性

一年又一年&#xff0c;Postgres 已成为世界上最受喜爱和最受信任的数据库 — Postgres 17将变得更好。即将发布的版本在开发人员体验和性能方面都有所改进。 Postgres 17 中的 3 大特性 #01 具有 RETURNING 支持的 MERGE 命令 它可以帮助需要处理条件数据修改而无需处理多…

CMU 10423 Generative AI:HW1(理论部分)

备注&#xff1a;S24版GitHub上有某CMU学生分享了自己的全套理论编程作业&#xff0c;以下内容的整理结合了我自己的理解查阅、GPT4的解答、以及CMU学生的答案。 文章目录 0 作业概述1 RNN语言模型1.1 问题1&#xff1a;Elman&#xff08;即RNN&#xff09; 网络模型条件输出问…

IDEAJ真正修改maven(.m2)在Windows环境下缓存路径

IDEAJ真正修改maven(.m2)缓存路径的方法 下面这种方式虽然当前项目生效了&#xff0c;IntelliJ IDEA修改默认.m2和.gradle缓存路径-CSDN博客文章浏览阅读251次&#xff0c;点赞4次&#xff0c;收藏8次。文章浏览阅读1.3k次。1&#xff0c;File -ProjectStructure - Artifacts &…

RISC-V (十二)系统调用

系统模式&#xff1a;用户态和内核态 当前的代码都是实现在machine模式下。 系统模式的切换 epc寄存器的值存放的是ecall指本身的地址 。 用ecall指令 系统调用的执行流程 mret这条指令会利用status的mpp值恢复到之前的特权级别。 蓝色的线表示涉及到权限切换。 系统调用的传…

【VUE】pinia持久化存储

前言&#xff1a;状态持久化存储的意义在于它能够确保用户在与应用程序交互时&#xff0c;其操作状态、用户偏好、应用数据等关键信息在页面刷新、浏览器关闭或重新启动后依然得以保留&#xff0c;从而提供连贯、无缝的用户体验&#xff0c;避免因状态丢失导致的不便和重复操作…

绑定域名解析怎么做?

在当今数字化时代&#xff0c;拥有一个网站已经成为许多个人和企业展示自己、提供服务或进行商业活动的重要方式。而要让网站能够在互联网上被访问到&#xff0c;绑定域名解析是一个关键的步骤。 绑定域名解析究竟该怎么做呢&#xff1f; 一、了解域名解析的基本概念 域名解…

【重要】MThings V0.7.1更新要点

下载地址http://gulink.cn/download 01. [新增]逻辑控制功能。 “逻辑控制”作为一项全新的商用版功能&#xff0c;通过使用直观的可视化积木搭建方法&#xff0c;为系统级数据处理提供了高度的可定制性。它能够简化复杂的数据计算、控制算法设计和仿真验证流程&#xff0c;同…

探索未来住宿体验:酒店触摸开关的科技魅力

在快节奏的现代生活中&#xff0c;人们对于旅行住宿的期待已远不止于基本的休息与安眠&#xff0c;而是更加注重个性化、便捷化与智能化。随着科技的飞速发展&#xff0c;酒店行业也迎来了前所未有的变革&#xff0c;其中&#xff0c;触摸开关作为智能客房的标志性元素&#xf…

【网络安全】-xss跨站脚本攻击-pikachu

文章目录 前言 什么是xss跨站脚本攻击&#xff1f; 1&#xff0e;xss的分类&#xff1a; 1.1 反射型xss 1.2 存储型xss 1.3 Dom型xss&#xff1a; 2.同源策略&#xff1a; 2.1同源策略的定义 2.2同源策略的绕过 2.3 绕过同源策略的绕过 前言 什么是xss跨站脚本攻击&#xff1…

两个月冲刺软考——重点理解传值方式与传引用方式的区别

1.总线的分类(按功能划分) 数据总线负责传输实际的数据。 地址总线用于指定数据的来源或目的地的内存地址。 控制总线传输控制信号&#xff0c;如读写指令和其他操作指令。 2.传值方式与传引用方式 传值方式&#xff1a;形参取的是实参的值&#xff0c;形参的改变不会导致调…

开源数据集 FreiHAND rgb 三维手势建模 手部关键点 >> DataBall

开源数据集 FreiHAND rgb 三维手势建模 手部关键点 mano hand 混合现实 深度学习 人工智能 FreiHAND是一个用于评估和训练深度神经网络以从单色图像中估计手部姿态和形状的数据集&#xff0c;这是在我们的论文中提出的。其当前版本包含32560个独特的训练样本和3960个独特的评估…

【JavaScript】LeetCode:26-30

文章目录 26 矩阵置零27 螺旋矩阵28 旋转图像29 搜索二维矩阵Ⅱ30 相交链表 26 矩阵置零 2次双重for循环。第1次&#xff1a;将matrix[i][j]为0时的i、j分别存放于数组res_i、res_j&#xff0c;记录有哪些行、列应该置为0。第2次&#xff1a;将记录中的行、列置为0。 /**- par…

揭秘蛇形机器人的主动SLAM算法和障碍物避让策略

更多优质内容&#xff0c;请关注公众号&#xff1a;智驾机器人技术前线 1.论文信息 论文标题&#xff1a;An active SLAM with multi-sensor fusion for snake robots based on deep reinforcement learning 作者&#xff1a;Xin Liu, Shuhuan Wen, Yaohua Hu, Fei Han, Hong…

如何利用免费工具轻松设计出专业Logo?

Logo 作为品牌的象征和视觉核心&#xff0c;承载了品牌的价值和理念。无论是创业公司还是个人品牌&#xff0c;拥有一个独特的 Logo 都显得尤为重要。然而&#xff0c;设计一个专业的 Logo 通常需要高昂的设计费用&#xff0c;许多人因此望而却步。幸运的是&#xff0c;随着互联…

视频合并实用教程分享,教你6个合并视频方法,不可错过!

多个视频怎么合成一个视频&#xff1f;如何把2个视频合成一个&#xff1f;怎么把多个视频合成一个视频&#xff1f;您是否也曾产生过这样的疑问呢&#xff1f;在如今互联网高速发展的时代&#xff0c;各行各业都难免需要涉及到视频制作领域&#xff0c;如果您正在考虑视频如何有…

HarmonyOS开发之模拟器地图点击无效问题

问题描述 当我们模拟器已经运行了&#xff0c;但是需求中需要引用地图&#xff0c;地图的点击事件无效&#xff0c;模拟器地图点击事件以及地拖拖拽无效&#xff0c;这个时候需要配置一下通过 chrome://inspect/#devices 通常用于远程调试移动设备上的 Chrome 浏览器 1、先配…

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断&#xff0c;开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中&#xff0c;硬件原生是不支持嵌套中断的&#xff0c;这从Cortex-A…

Sentinel实时监控不展示问题

问题 官方插件 Endpoint 支持&#xff0c;可以实时统计出SpringBoot的健康状况和请求的调用信息 在使用 Endpoint 特性之前需要在 Maven 中添加 spring-boot-starter-actuator 依赖&#xff0c;并在配置中允许 Endpoints 的访问。 Spring Boot 1.x 中添加配置 management.se…

硬件工程师笔试面试——MOS管

目录 8、MOS管 8.1 基础 MOS管原理图 MOS实物图 8.1.1 概念 8.1.2 特点 8.1.3 类型 7.2 相关问题 7.2.1 MOS管在不同应用中的阈值电压和最大漏极电流通常是多少? 7.2.2 如何根据电路设计选择合适的MOS管类型? 7.2.3 MOS管在高频应用中的优势是什么,它如何影响电路…

数据结构(4)栈和队列

一、栈 栈是一种线性的数据存储结构&#xff0c;由于栈只允许从一端进行数据的插入和删除。因此&#xff0c;栈是先进后出&#xff08;FILO&#xff09;的特性。 系统栈是由系统进行创建和维护的&#xff0c;数据结构中的栈是由自己创建和维护的。 栈的类型有&#xff1a;满增栈…