Seata处理分布式事务之1.7.0

news2024/12/24 9:13:10

https://blog.csdn.net/zhang33565417/article/details/122768300
1.5.0之后版本发生了很大改变

1.seata安装

1.1官网地址

http://seata.io/zh-cn/

1.2下载地址

https://github.com/seata/seata/releases
下载的是seata-server-1.7.0.zip

1.3seata相关配置的修改

seata-server-1.7.0\seata\conf下的application.yml进行修改

server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: F:/2023_wyr_study/logs
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata
    ##此处为修改内容
    ########### 配置中心为nacos
seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3 配置中心
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      group : "SEATA_GROUP"
      namespace: ""
      dataId: "seataServer.properties"
      username: "nacos"
      password: "nacos"
          ########### 注册中心为nacos
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type:  nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group : "SEATA_GROUP"
      namespace: ""
      username: "nacos"
      password: "nacos"
      ########### 存储模式为数据库且存到mysql 这里根据你自己的mysql连接版本写
      ######## 到seata-server-1.7.0\seata\lib\jdbc看是否支持
  store:
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/seata?serverTimeZone=UTC&rewriteBatchedStatements=true
      user: root
      password: root
      min-conn: 10
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 1000
      max-wait: 5000
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login

1.4事务表的创建

数据库名为seata和上述配置文件中的数据库名称一致
sql语句位置seata-server-1.7.0\seata\script\server\db

-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- 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 = InnoDB
  DEFAULT 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 = InnoDB
  DEFAULT 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 = 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);

在这里插入图片描述
启动你的nacos再启动你的seata就ok了

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

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

相关文章

Python学习 -- Math模块和Random模块

math 模块提供了许多数学函数,用于执行各种数学运算。以下是一些常用的 math 函数以及相应的示例代码: math.sqrt(x): 计算平方根。 import math x 25 square_root math.sqrt(x) print(f"√{x} {square_root}") math.pow(x, y): 计算 x …

好用的电容笔有哪些推荐?适合开学买电容笔推荐

尤其是在苹果品牌推出了专属Pencil系列之后,苹果原装的Pencil系列产品,更是将价格压到了所有人都无法企及的地步。市场上有不少可以替代苹果Pencil的平替电容笔,无论是做笔记还是专业的绘画,都完全足够了。在此,我将为…

电视盒子什么品牌好?数码博主盘点目前性能最好的电视盒子

电视盒子是非常重要的,老人小孩基本每天都会看电视,而电视盒子作为电视盒子的最佳拍档销量十分火爆,我自己每个月都会测评几次电视盒子,今天给大家详细解读一下电视盒子什么品牌好,看看目前性能最好的电视盒子是哪些&a…

电力智能监控系统

电力智能监控系统依托电易云-智慧电力物联网,利用计算机、计量保护装置和总线技术,对中、低压配电系统的实时数据、开关状态及远程控制进行了集中管理。该电力监控系统可以为企业提供"监控一体化"的整体解决方案,主要包括实时历史数…

AutoHotkey(AHK)脚本,自动截图当前屏幕并发送给微信窗口

前提先安装好 AutoHotkey ,本脚本依赖AutoHotkey 环境 首先 ,设置微信的快捷键 执行代码如下: Loop {SendInput, {Alt down}s{Alt up}Sleep, 2000 ; 等待2秒; 双击鼠标左键Click, 2Sleep, 1000 ; 等待1秒SendInput, {Alt down}a{Alt up}Sl…

systemverilog运行的时候调用系统函数运行python等

systemverilog 运行的时候使用系统函数 使用场景,在仿真过程中,需要外部环境准备仿真参数,或者调整仿真参数的时候 创建一个python文件 print("123")创建一个sv文件 module dut ;initial begin$system("python 123.py"…

【补充】助力工业物联网,工业大数据之AirFlow安装

【补充】助力工业物联网,工业大数据之AirFlow安装 直接在node1上安装 1、安装Python 安装依赖 yum -y install zlib zlib-devel bzip2 bzip2-devel ncurses ncurses-devel readline readline-devel openssl openssl-devel openssl-static xz lzma xz-devel sqlit…

WebStorm软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 WebStorm是一款由JetBrains开发的集成开发环境(IDE),专门用于开发Web应用程序。它支持多种前端技术,如HTML、CSS、JavaScript、TypeScript等,并提供了丰富的功能和工具&…

ICL7106芯片的特性、应用与重要性 | 百能云芯

ICL7106 是一种专用集成电路 (IC),在模数转换中发挥着至关重要的作用。它是一种通用且广泛使用的 ADC,可在各种电子应用中提供高精度测量。下面小芯为您详细解析ICL7106 是什么、它的特性、应用及其在电子领域的重要性。 ICL7106 是 Intersil&#xff08…

记一次Nginx代理Mysql服务的经历

背景: 根据组长背景描述,具备以下前提 1. Mysql服务器为 某A云厂商的RDS SAAS服务,但是不开通外网服务 2. EC2 服务器一台,某A云厂商LaaS服务,也不开通外网 3.阿里云服务器一台,这台服务器有服务需要连…

巨人互动|游戏出海游戏出海效果怎样?

游戏出海是指将原本面向国内市场的游戏产品进行调整和优化,以适应海外市场的需求,并进行推广和销售。下面小编讲讲关于游戏出海对于游戏效果的影响的一些讨论点。 1、市场扩大 通过游戏出海,可以将游戏产品的目标受众从国内扩展到全球范围内…

博物学欣赏

自文艺复兴以降,西方开启发现世界的旅程。 这些东西对于科学、地理学、考古学、探险、旅游学、博物学、绘画学、美学无疑有着至高无上的借鉴价值。我们今天出版这些图文并茂的书籍有如斯高远的志向和目标: 展现自然的历史风貌 呈现万物的生态原样 复现…

nginx离线安装

ngixn的离线安装(centos7) 需要的依赖 gcc、gcc-c pcre-8.42.tar.gz zlib-1.2.11.tar.gz openssl-1.1.1s.tar.gz perl-5.28.0.tar.gz 在进行nginx离线安装时,首先查看系统是否安装 gcc、gcc-c,若没有进行安装,请先进行安装 gcc -v #查…

线程、并发相关---第五篇

系列文章目录 文章目录 系列文章目录一、并发的三大特性二、volatile一、并发的三大特性 原子性 原子性是指在一个操作中cpu不可以在中途暂停然后再调度,即不被中断操作,要不全部执行完成,要 不都不执行。就好比转账,从账户A向账户B转1000元,那么必然包括2个操作:从账户…

PMP备考过程和心得

23年还剩11月的考试,教材是第七版教材,也有可能增加连线题和填空题,要做好题型变化的准备。现在可以将英文报名先报了。 第七版教材 第七版再度升级,不否认前几版的基于过程的方法,强调项目不只是产生输出&#xff0…

【OpenCV入门】第二部分——Numpy模块

写在前面: 这个部分是Numpy模块与OpenCV有关的部分。如果想了解Numpy库是什么,或者想要直接单独学习Numpy库,可以看看我以前写的这篇Numpy学习笔记。一些内容如数组类型、数组创建、数组运算和数组索引在链接文章里有,就不在这里赘…

SQL注入绕过实战案例一

目录 一、SQL-LAB靶场搭建 1、搭建环境 2、开启nginx和mysql 3、将下载好的sal-labs靶场将压缩文件解压至phpstudy的www目录下 4、查看mysql密码,将其修改值靶场配置文件中 5、配置网站 6、完成后我们就可以在浏览器输入127.0.0.1:8090进入靶场 二…

vue 打印

vue-print-nb插件使用 vue 打印 vue-print-nb - 简书 1、media print 内样式无效问题 <style lang"scss"> media print {} </style> style上不能加scoped; 2、分页问题 A4纸的长宽&#xff1a;210mm297mm&#xff0c;css中支持mm单位&#xff0c;可…

室内外高精度融合定位模块UWB+RTK

UWBRTK融合定位模块是华星智控自主研发的一款用于实现室内外高精度融合定位的模块。 UWB&#xff08;Ultra-Wideband&#xff09;&#xff1a;UWB是一种无线通信技术&#xff0c;它利用非常宽的频带来传输数据。UWB技术可以提供非常精确的距离测量&#xff0c;因为它能够以极短…

【20期】说一说Java引用类型原理

Java中一共有4种引用类型(其实还有一些其他的引用类型比如FinalReference)&#xff1a;强引用、软引用、弱引用、虚引用。 其中强引用就是我们经常使用的Object a new Object(); 这样的形式&#xff0c;在Java中并没有对应的Reference类。 本篇文章主要是分析软引用、弱引用、…