SpringCloud nacos 2.0.0 + seata 2.0.0

NACOS

下载nacos

https://github.com/alibaba/nacos/releases/tag/2.2.0

启动nacos

startup.cmd -m standalone

SEATA

下载seata

https://seata.apache.org/release-history/seata-server

新建数据库-seata

CREATE TABLE `branch_table` (`branch_id` bigint NOT NULL,`xid` varchar(128) NOT NULL,`transaction_id` bigint DEFAULT NULL,`resource_group_id` varchar(32) DEFAULT NULL,`resource_id` varchar(256) DEFAULT NULL,`branch_type` varchar(8) DEFAULT NULL,`status` tinyint DEFAULT NULL,`client_id` varchar(64) DEFAULT NULL,`application_data` varchar(2000) DEFAULT NULL,`gmt_create` datetime(6) DEFAULT NULL,`gmt_modified` datetime(6) DEFAULT NULL,PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;CREATE TABLE `global_table` (`xid` varchar(128) NOT NULL,`transaction_id` bigint DEFAULT NULL,`status` tinyint NOT NULL,`application_id` varchar(32) DEFAULT NULL,`transaction_service_group` varchar(32) DEFAULT NULL,`transaction_name` varchar(128) DEFAULT NULL,`timeout` int DEFAULT NULL,`begin_time` bigint DEFAULT NULL,`application_data` varchar(2000) DEFAULT NULL,`gmt_create` datetime DEFAULT NULL,`gmt_modified` datetime DEFAULT NULL,PRIMARY KEY (`xid`),KEY `idx_status_gmt_modified` (`status`,`gmt_modified`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;CREATE TABLE `lock_table` (`row_key` varchar(128) NOT NULL,`xid` varchar(128) DEFAULT NULL,`transaction_id` bigint DEFAULT NULL,`branch_id` bigint NOT NULL,`resource_id` varchar(256) DEFAULT NULL,`table_name` varchar(32) DEFAULT NULL,`pk` varchar(36) DEFAULT NULL,`status` tinyint NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',`gmt_create` datetime DEFAULT NULL,`gmt_modified` datetime DEFAULT NULL,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 COLLATE=utf8mb4_0900_ai_ci;INSERT INTO `distributed_lock` VALUES ('AsyncCommitting', ' ', '0');
INSERT INTO `distributed_lock` VALUES ('RetryCommitting', ' ', '0');
INSERT INTO `distributed_lock` VALUES ('RetryRollbacking', ' ', '0');
INSERT INTO `distributed_lock` VALUES ('TxTimeoutCheck', ' ', '0');
INSERT INTO `distributed_lock` VALUES ('UndologDelete', ' ', '0');

修改配置文件

seata-server-2.0.0\seata\conf\application.yml

server:
  port: 7091
 
spring:
  application:
    name: seata-server
 
logging:
  config: classpath:logback-spring.xml
  file:
    path: ${log.home:${user.home}/logs/seata}
  #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
seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:

      server-addr: 127.0.0.1:8848
      namespace: dev_seata
      group: DEV_GROUP
      username: nacos
      password: nacos
      context-path: /nacos
      data-id: seataServer.properties

  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:

      application: seata-server
      server-addr: 127.0.0.1:8848
      group: DEV_GROUP
      namespace: dev_seata
      cluster: default
      username: nacos
      password: nacos
      context-path: /nacos

  server:
    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
    max-commit-retry-timeout: -1
    max-rollback-retry-timeout: -1
    rollback-retry-timeout-unlock-enable: false
    enable-check-auth: true
    enable-parallel-request-handle: true
    enable-parallel-handle-branch: false
    retry-dead-threshold: 130000
    xaer-nota-retry-timeout: 60000
    enableParallelRequestHandle: true
    recovery:
      committing-retry-period: 1000
      async-committing-retry-period: 1000
      rollbacking-retry-period: 1000
      timeout-retry-period: 1000
    undo:
      log-save-days: 7
      log-delete-period: 86400000
    session:
      branch-async-queue-size: 5000 #branch async remove queue size
      enable-branch-async-remove: false #enable to asynchronous remove branchSession
  store:
    # support: file 、 db 、 redis 、 raft
    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
      user: root
      password: 111
      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
  metrics:
    enabled: false
    registry-type: compact
    exporter-list: prometheus
    exporter-prometheus-port: 9898
  transport:
    rpc-tc-request-timeout: 15000
    enable-tc-server-batch-send-response: false
    shutdown:
      wait: 3
    thread-factory:
      boss-thread-prefix: NettyBoss
      worker-thread-prefix: NettyServerNIOWorker
      boss-thread-size: 1
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/metadata/v1/**

nacos增加配置文件seataServer.properties

#Transaction storage configuration, only for the server. The file, db, and redis configuration values are optional.
store.mode=db
store.lock.mode=db
store.session.mode=db
#Used for password encryption
#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
store.db.datasource=druid
store.db.dbType=mysql
#使用mysql8驱动
store.db.driverClassName=com.mysql.cj.jdbc.Driver
#设置时区
store.db.url=jdbc:mysql://127.0.0.1:3306/seata
store.db.user=root
store.db.password=Loit@0487
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000

启动seata

seata-server.bat

启动成功标识

业务代码

数据库sql

/*
Navicat MySQL Data TransferSource Server         : localhost
Source Server Version : 80040
Source Host           : localhost:3306
Source Database       : orderTarget Server Type    : MYSQL
Target Server Version : 80040
File Encoding         : 65001Date: 2025-01-16 13:59:52
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for order_tbl
-- ----------------------------
DROP TABLE IF EXISTS `order_tbl`;
CREATE TABLE `order_tbl` (`id` int NOT NULL AUTO_INCREMENT,`user_id` varchar(255) DEFAULT NULL,`commodity_code` varchar(255) DEFAULT NULL,`count` int DEFAULT '0',`money` int DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3;-- ----------------------------
-- Records of order_tbl
-- ----------------------------
INSERT INTO `order_tbl` VALUES ('5', '1', '1', '1', '500');-- ----------------------------
-- Table structure for undo_log
-- ----------------------------
DROP TABLE IF EXISTS `undo_log`;
CREATE TABLE `undo_log` (`id` bigint NOT NULL AUTO_INCREMENT,`branch_id` bigint NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,`ext` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3;-- ----------------------------
-- Records of undo_log
-- ----------------------------
/*
Navicat MySQL Data TransferSource Server         : localhost
Source Server Version : 80040
Source Host           : localhost:3306
Source Database       : accountTarget Server Type    : MYSQL
Target Server Version : 80040
File Encoding         : 65001Date: 2025-01-16 14:00:10
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for account_tbl
-- ----------------------------
DROP TABLE IF EXISTS `account_tbl`;
CREATE TABLE `account_tbl` (`id` int NOT NULL AUTO_INCREMENT,`user_id` varchar(255) DEFAULT NULL,`money` int DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;-- ----------------------------
-- Records of account_tbl
-- ----------------------------
INSERT INTO `account_tbl` VALUES ('1', '1', '99500');-- ----------------------------
-- Table structure for undo_log
-- ----------------------------
DROP TABLE IF EXISTS `undo_log`;
CREATE TABLE `undo_log` (`id` bigint NOT NULL AUTO_INCREMENT,`branch_id` bigint NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,`ext` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3;-- ----------------------------
-- Records of undo_log
-- ----------------------------

nacos增加配置文件

命名空间:dev

spring:datasource:# 当前数据源操作类型type: com.alibaba.druid.pool.DruidDataSource# mysql驱动类#driver-class-name: com.mysql.cj.jdbc.Driver#url: jdbc:mysql://localhost:3306/order?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8#username: root#password: Loit@0487#driver-class-name: org.postgresql.Driver#url: jdbc:postgresql://10.251.106.100:5432/order#username: vbadmin#password: SObr14uPEWBZ8A3M0R__driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://10.251.106.99:5432/orderusername: sysadminpassword: A@ssemble1q2w3e4r5t6ymybatis:mapper-locations: classpath*:mapper/*.xml

spring:datasource:# 当前数据源操作类型type: com.alibaba.druid.pool.DruidDataSource# mysql驱动类#driver-class-name: com.mysql.cj.jdbc.Driver#url: jdbc:mysql://localhost:3306/account?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8#username: root#password: Loit@0487#driver-class-name: org.postgresql.Driver#url: jdbc:postgresql://10.251.106.100:5432/account#username: vbadmin#password: SObr14uPEWBZ8A3M0R__driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://10.251.106.99:5432/accountusername: sysadminpassword: A@ssemble1q2w3e4r5t6ymybatis:mapper-locations: classpath*:mapper/*.xml

YML配置文件

account服务配置文件

spring:cloud:nacos:# 注册中心discovery:server-addr: 127.0.0.1:8848username: nacospassword: nacosnamespace: devgroup: DEV_GROUP# 配置中心config:server-addr: 127.0.0.1:8848context-path: /nacosusername: nacospassword: nacosnamespace: devgroup: DEV_GROUP#☆ 配置文件后缀名  cloud项目启动时,自动调用nacos配置中心中DataID = ${spring.application.name}-{spring.profiles.active}.${spring.cloud.nacos.config.file-extension} (business-dev.yml) 文件file-extension: yml# 使用nacos负载均衡loadbalancer:nacos:enabled: trueconfig:#☆ 导入Nacos配置中心的配置文件import:- optional:nacos:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}?refresh=trueseata:enabled: trueapplication-id: account-seata#设置分组名称tx-service-group: shop_tx_groupservice:vgroup-mapping:# 当前分组的集群名称,seata单机模式集群名称默认为defaultshop_tx_group: defaultregistry:type: nacosnacos:# 配置seata服务在注册中心服务名,默认为seata-serverapplication: seata-serverserver-addr: 127.0.0.1:8848context-path: /nacosusername: nacospassword: nacosnamespace: dev_seatagroup: DEV_GROUPcluster: defaultfeign:client:config:# default:对所有服务生效		需要对单个服务配置将default改为服务名default:# 设置连接超时时间connect-timeout: 3000# 设置读取数据超时时间read-timeout: 2000# 调用日志打印等级,需要同步将Feign调用类的日志等级设置为Debug才生效logger-level: basic

order服务配置文件

spring:cloud:nacos:# 注册中心discovery:server-addr: 127.0.0.1:8848username: nacospassword: nacosnamespace: devgroup: DEV_GROUP# 配置中心config:server-addr: 127.0.0.1:8848context-path: /nacosusername: nacospassword: nacosnamespace: devgroup: DEV_GROUP#☆ 配置文件后缀名  cloud项目启动时,自动调用nacos配置中心中DataID = ${spring.application.name}-{spring.profiles.active}.${spring.cloud.nacos.config.file-extension} (business-dev.yml) 文件file-extension: yml# 使用nacos负载均衡loadbalancer:nacos:enabled: trueconfig:#☆ 导入Nacos配置中心的配置文件import:- optional:nacos:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}?refresh=trueseata:enabled: trueapplication-id: order-seata#设置分组名称tx-service-group: shop_tx_groupservice:vgroup-mapping:# 当前分组的集群名称,seata单机模式集群名称默认为defaultshop_tx_group: defaultregistry:type: nacosnacos:# 配置seata服务在注册中心服务名,默认为seata-serverapplication: seata-serverserver-addr: 127.0.0.1:8848context-path: /nacosusername: nacospassword: nacosnamespace: dev_seatagroup: DEV_GROUPcluster: defaultfeign:client:config:# default:对所有服务生效		需要对单个服务配置将default改为服务名default:# 设置连接超时时间connect-timeout: 3000# 设置读取数据超时时间read-timeout: 2000# 调用日志打印等级,需要同步将Feign调用类的日志等级设置为Debug才生效logger-level: basic

源码

000000/seata_at

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

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

相关文章

springboot音乐播放器系统

Spring Boot音乐播放器系统是一个基于Spring Boot框架开发的音乐播放平台,旨在为用户提供高效、便捷的音乐播放体验。 一、系统背景与意义 随着互联网的飞速发展和人们对音乐娱乐需求的不断增长,音乐播放器已经成为人们日常生活中不可或缺的一部分。传…

奉加微PHY6230兼容性:部分手机不兼容

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

Go-知识 版本演进

Go-知识 版本演进 Go release notesr56(2011/03/16)r57(2011/05/03)Gofix 工具语言包工具小修订 r58(2011/06/29)语言包工具小修订 r59(2011/08/01)语言包工具 r60(2011/09/07)语言包工具 [go1 2012-03-28](https://golang.google.cn/doc/devel/release#go1)[go1.1 2013-05-13]…

C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程

如果这是您阅读的本专栏的第一篇博文,建议先阅读如何安装Visual Studio 2022。 C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 一、简单准备 开始学习、编写程序…

数字艺术类专业人才供需数据获取和分析研究

本文章所用数据集:数据集 本文章所用源代码:源代码和训练好的模型 第1章 绪论 1.1研究背景及意义 随着社会经济的迅速发展和科技的飞速进步,数字艺术类专业正逐渐崛起,并呈现出蓬勃发展的势头。数字艺术作为创作、设计和表现形式的…

imbinarize函数用法详解与示例

一、函数概述 众所周知,im2bw函数可以将灰度图像转换为二值图像。但MATLAB中还有一个imbinarize函数可以将灰度图像转换为二值图像。imbinarize函数是MATLAB图像处理工具箱中用于将灰度图像或体数据二值化的工具。它可以通过全局或自适应阈值方法将灰度图像转换为二…

使用ffmpeg提高mp4压缩比,减小文件体积【windows+ffmpeg+batch脚本】

文章目录 关于前情提要FFmpeg是什么使用脚本运行FFmpeg首先,下载ffmpeg.exe然后在视频相同位置写一个bat脚本运行压缩脚本 关于 个人博客,里面偶尔更新,最近比较忙。发一些总结的帖子和思考。 江湖有缘相见🤝。如果读者想和我交…

Codeforces Round 997 (Div. 2) A~C

今天的封面是水母猫猫和佩佩,原图在这里,记得关注画师夏狩大大 至此,天鹅完成了连续四场比赛在四个不同比赛上四次分的壮举!(ABC388,CodeChef169,牛客月赛109,CF997) 这场…

JavaFx + SpringBoot 快速开始脚手架

JavaFX系列项目模板 JDK8 & JavaFX & SpringBoot 加持SpringBoot,项目示例,Maven打包插件带可执行程序JDK8 & JavaFX 不依赖SpringBoot,项目示例,Maven打包插件带可执行程序JDK11 & JavaFX15 使用 jlink 打包为精…

蓝桥杯3525 公因数匹配 | 枚举+数学

题目传送门 这个题目是一个数学题,由于只需要找到存在大于1的公因数的两数,所以比较方便的做法是统计每一个数的(质)因数。可以通过筛法统计质因数降低复杂度,但是直接枚举因数也可以满足要求。使用字典记录每个因数出…

当PHP遇上区块链:一场奇妙的技术之旅

PHP 与区块链的邂逅 在技术的广袤宇宙中,区块链技术如同一颗耀眼的新星,以其去中心化、不可篡改、透明等特性,掀起了一场席卷全球的变革浪潮。众多开发者怀揣着对新技术的热忱与探索精神,纷纷投身于区块链开发的领域,试…

利用Ai,帮我完善了UsbCamera App的几个界面和设置功能

早些时候,我有开源了一个UsbCamera App的代码,后来因为一些原因,就只针对星球成员和课程视频成员开源了。最近,我对这个App进行了一些内容的补充。 主要是添加了一些设置相关的内容,支持rtmp推流、循环录像、镜像&…

【系统分享01】Python+Vue电影推荐系统

大家好,作为一名老程序员,今天我将带你一起走进电影推荐系统的世界,分享如何利用 Django REST Framework 和 Vue 搭建一套完整的电影推荐系统,结合 协同过滤算法,根据用户评分与影片喜好,精准推送用户可能喜…

【k8s面试题2025】1、练气期

主要通过呼吸吐纳等方法,将外界的天地灵气吸入体内,初步改造身体,使身体素质远超常人。 文章目录 docker 和虚拟机的不同Kubernetes 和 docker 的关系Kube-proxy IPVS 和 iptables 的异同蓝绿发布Kubernetes中常见的数据持久化方式关于 Docke…

【统计的思想】假设检验(一)

假设检验是统计学里的重要方法,同时也是一种“在理想与现实之间观察求索”的测试活动。假设检验从概率的角度去考察理想与现实之间的关系,籍此来缓解测试可信性问题。 我们先来看一个例子。民航旅客服务系统,简称PSS系统,有一种业…

Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker Desktop [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 seafile 参考资料 Docker安装 Seafile OnlyOffice 并配置OnlyOffice到Seafile,实现在线编辑…

移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场

近日,全球领先的物联网整体解决方案供应商移远通信正式宣布,其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…

使用SIPP发起媒体流性能测试详解

使用SIPP发起媒体流性能测试详解 一、SIPP工具简介二、测试前的准备三、编写测试脚本四、运行测试五、分析测试结果六、总结SIPP(SIP Performance Protocol)是一个开源工具,专门用于SIP(Session Initiation Protocol)协议的性能测试和基准测试。SIP是一种用于控制多媒体通…

农业农村大数据应用场景|珈和科技“数字乡村一张图”解决方案

近年来,珈和科技持续深耕农业领域,聚焦时空数据服务智慧农业。 珈和利用遥感大数据、云计算、移动互联网、物联网、人工智能等先进技术,搭建“天空地一体化”监测体系,并创新建设了150的全球领先算法模型,广泛应用于高…

HTML学习笔记(4)

目录 一、背景相关样式 二、定位position 三、javascript 1、变量的定义 2、数据类型 3、绑定事件 一、背景相关样式 background-image: url(); // 背景图片 background-repeat: repeat; // 背景图片是否平铺 no-repeat background-size: 200px; // 背景图片尺寸 cover把…