Seata与Nacos的组合使用

nacos环境下seata配置 找到里面的springcloud-nacos-seata文件,我们可以拿它的stock和order模块测试,在需要用到seata服务的不同库里我们都需要引入undo_log这个表,建表语句在官网和给出案例的readme.md里都能容易找到。遗憾是按照其案例配置依然会报错,这大概和最新依赖配置不能匹配,所以按照idea工具的配置方式,配置了spring web/nacos/seata依赖。是笔者遇到的spring技术栈中配置相对麻烦的一个,而且按官方案例都不一定成功,有不少错误产生。 阅读详情

项目版本

  • JDK版本:17
  • IDEA版本:2026.1
  • Maven版本:3.9.10
  • Nacos版本:Windows-2.5.2
  • Seata版本:Windows-1.6.1
  • SQL版本:阿里云RDS-MySQL8.x
  • 操作系统:Windows11

项目中各个依赖版本:

<!-- SpringBoot版本 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0</version>

<!-- SpringBoot版本 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2022.0.0.0-RC1</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!-- bootstrap版本 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>4.0.0</version>
</dependency>

<!-- Nacos配置中心版本 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2022.0.0.0-RC1</version>
</dependency>

<!-- Nacos服务发现版本 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2022.0.0.0-RC1</version>
</dependency>

<!-- Seata版本 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
    <version>2022.0.0.0-RC1</version>
</dependency>

编辑Seata配置文件

找到Seata所在的目录,找到目录下的conf文件夹。博主当前是在D:\Develop\Alibaba\Seata\seata-1.6.1\conf

在这里插入图片描述
打开application.yml文件。(application.example.yml是application.yml的模版文件,可参照此文件编写application.yml中的内容)

在这里插入图片描述
以下application.yml内容为博主文件中的内容,仅供参考。

#  Copyright 1999-2019 Seata.io Group.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

server:
# Seata 应用端口
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${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:
# 配置中心类型,默认file(本地),可选nacos, consul, apollo, zk, etcd3
# 在 Seata 中的作用是:集中化配置管理(统一维护 Seata 规则)
  config:
    # support: nacos, consul, apollo, zk, etcd3
    # type: file
    type: nacos
    nacos:
      server-address: 127.0.0.1:8848
      namespace: train
      group: SEATA_GROUP
      data-id: seataServer.yaml
# 服务发现类型,默认file(本地),可选nacos, consul, apollo, zk, etcd3
# 在 Seata 中的作用是:服务注册与发现(TM/RM 如何找到 TC)
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    # type: file
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace: train
      cluster: default
  # 全局事务管理信息存储地方 file(本地) db(数据库) redis
  store:
    # support: file 、 db 、 redis
    mode: db
  # 若没有显式声明服务运行端口,默认为${server.port} + 1000,即7091+1000=8091
#  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,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

设置完毕后保存,即可去到bin文件夹下,在资源导航地址栏中输入cmd,使用命令行启动Seata

在这里插入图片描述

cmd seata-server.bat [options]

options的参数有以下几个:

option含义默认值
-h该地址公开给注册中心,其他服务可以通过该ip访问服务器0.0.0.0
-p服务监听端口(注意:不是设置应用启动端口)8091
-m日志信息与全局事务管理信息存放位置file(本地)
-help命令帮助-

配置数据库

创建数据库,数据库名称可自定义,后续在Nacos中的配置文件中需要填写清楚。创建数据库后执行Seata根目录\script\server\db中的mysql.sql文件

在这里插入图片描述

执行完毕后,数据库中会有以下表:

在这里插入图片描述

编写 TM(服务模块) 中的配置文件

在需要使用Seata中的项目模块下的bootstrap.yaml文件中编写以下内容:

spring:
  # 注册中心中显示的服务名字
  application:
    name: member
  # 启动环境,Nacos 会根据环境读取不同的配置信息
  profiles:
    active: dev
  cloud:
  # 用于 member 服务注册到 Nacos 中并获取配置信息
  # 当前 Nacos 配置信息服务于当前模块
    nacos:
      config:
        # Nacos 服务地址(默认:127.0.0.1:8848)
        server-addr: 127.0.0.1:8848
        # 配置中心文件后缀,默认为 properties
        file-extension: yaml
        # 需要使用的命名空间-命名空间ID
        namespace: train
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: train
seata:
  # 事务组名称
  tx-service-group: train-group
  # Seata 中的 Nacos 信息用于协助当前服务发现 TC(Seata服务端)与获取 Seata 所需要的配置信息
  registry:
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      namespace: train
      group: SEATA_GROUP
      application: seata-server
  config:
    type: nacos
    data-type: yaml
    nacos:
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace: train
      data-id: seataServer.yaml

Seata 的 Nacos 配置信息与当前模块的 Nacos 配置信息具有不同作用,所以当你的模块服务需要注册到 Nacos 时且需要使用 Seata 搭配 Nacos 时两个 Nacos 配置信息都需要显式配置。

编写 Nacos 中的配置信息

博主所使用的命名空间为 train。随后在当前命名空间下创建 seataServer.yaml 配置信息,此配置信息的 DataId 与 group 为 Seata 的 application.yml 与 自己项目模块中的 bootstrap.yaml 所共同定义的 DataId 和 group。
在这里插入图片描述
此配置内容格式需要参考Seata根目录\script\config-center\config.txt内的内容!格式错误的情况下,是无法使用Seata的全局事务管理功能。配置内容为以下内容:

service:
  vgroupMapping:
    train-group: default
store:
  mode: db
  db:
    dbType: mysql
    driverClassName: com.mysql.cj.jdbc.Driver
    url: 自己数据库的地址
    user: 用户名
    password: 密码

查看日志

在这里插入图片描述
当出现以上信息时即代表完成 TM 与 RM 的注册,即可使用 Seata 的全局事务管理功能。

seata2.0 下载安装部署,使用nacos为配置中心、注册中心 1、nacos新建配置 2、下载seata安装包​​​​​​​ 3、修改seata配置文件 4、启动seata server 阅读详情

相关推荐

Seata的安装与Demo

还需要下载nacos-config.sh脚本文件,然后将修改好的config.txt放在脚本的父目录,例如脚本在conf下,config.txt在seata根目录,执行下面的命令,把每一项添加到nacos,为后面client使用。在seata-server的bin目录下执行如下命令,把seata-server注册到nacos中,并且指定访问地址和打开的端口。下载数据库文件,这里我们选择MySQL,并且在MySQL数据库中创建一个数据库,并且执行下载下来的数据库文件。表,在REDEME-zh.md中有提及。

huang_1228的博客 530

二、seata + nacos 配置(windows)

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Global Transaction Service 全局事务服务)源码:官方Demo:seata版本:v1.4.0(如果不能打开上方链接下载的小朋友,我这边下载好的也有,需要积分)

csl12919的博客 3341

Seata 与 Nacos 2.x 的深度整合实践

本文详细介绍了Seata与Nacos 2.x的深度整合实践,包括环境准备、配置详解、客户端整合及常见问题排查。通过实际案例展示如何利用Seata的分布式事务管理和Nacos的服务发现功能,提升微服务架构的稳定性和可靠性。文章还提供了性能优化和高可用部署建议,帮助开发者更好地应对生产环境挑战。

weixin_29250403的博客 328

微服务项目中使用seata,以nacos作为配置中心,很详细

因为我们要切换为nacos为配置中心,只要看“application.example.yml”文件的“seata-config-nacos”和“seata-registry-nacos”就行了。在删除医生数据时出现错误,对应的医生数据业务会回滚,删除账号和角色不会回滚,并且seata数据库的“global_table”表和“undo_log”表没有新增数据。“undo_log”表还是没有数据,但是“global_table”表新增了数据,并且XID是对应删除医生数据的XID,但子业务还是没有回滚。

studio_1的博客 1万+

Docker部署Nacos与Seata的微服务实践指南

在微服务架构中,容器化技术通过标准化环境封装解决了服务部署的一致性问题。Docker作为主流容器引擎,其轻量级虚拟化特性能够实现服务的快速部署与弹性扩缩容。结合Nacos实现服务注册发现与配置管理,配合Seata处理分布式事务,构成了云原生架构的核心基础设施。这种技术组合特别适合需要快速迭代的互联网应用场景,通过容器编排工具可以实现开发测试环境与生产环境的高度一致,有效提升交付效率。本文以Nacos+Seata为例,详细演示如何利用Docker容器化技术构建高可用的微服务治理体系。

weixin_31292729的博客 250

多传感器融合SLAM指南:如何结合视觉与激光雷达提升建图精度

本文深入探讨了多传感器融合SLAM技术,详细解析了如何将视觉传感器与激光雷达(特别是3D激光雷达)进行深度融合以提升建图精度与鲁棒性。文章从传感器特性分析、数据同步标定、前端融合策略(松耦合与紧耦合)到后端优化与地图构建,提供了完整的实战指南,并重点介绍了V-LOAM等经典融合框架的核心思想,旨在帮助开发者构建适应复杂动态环境的高精度SLAM系统。

weixin_29056145的博客 535

(Java企业 / 公司项目)分布式事务Seata详解(含Seata+Nacos组合使用)(二)

配置nacos打开下载好的文件夹找到配置文件配置中心的文件名就是data-id接下来修改注册中心启动项目模块打开seata服务出现注册中心,接下来打开nacos查看命名空间,nacos的配置在前面的博客当中有可以查看怎么集成。访问nacos,显示的信息都是前面配置成功的信息注意这里的id需要和配置文件中的一致, group也需要一致下面的配置内容为AT模式会有一个全局锁,用于防止脏读,线程1的事务修改了库存,但还没提交事务,线程2读库存的时候,读的还是原来的库存。

全栈技术分享,项目分享,资料分享 1069

sap外币重估流程图_SAP 外币评估方法(Valuation Method,评估方法)

在FI-GL模块评估外币时(T-code:F.05),需要输入ValuationMethod。下面分解一下评估方法是如何定义的。IMG -> FI -> General LedgerAccounting ->Business Transactions ->Closing ->Valuating -> ForeignCurrency Valuation ->...

weixin_39640543的博客 2355

(Java企业 / 公司项目)分布式事务Seata详解(含Seata+Nacos组合使用)(一)

AT模式,默认,简单,需要增加undo_log表,生成反向SQL,性能高,回滚后原来没数据的,现在还是没数据TCC模式,try confirm/cancel,三个阶段的代码都得自己实现,Seata只负责调度对业务代码侵入性比较强,必要时可能还要修改数据库SAGA模式,长事务解决方法,需要程序员自己编写两阶段的代码(AT模式不需要写)基于状态机来实现的需要一个JSON文件,可异步执行。

全栈技术分享,项目分享,资料分享 1553

银河麒麟系统下VSCode安装全攻略:从下载到桌面快捷方式(附常见问题解决)

本文详细介绍了在银河麒麟系统下安装和优化VSCode的全流程,包括环境准备、安装策略、权限管理、桌面快捷方式创建以及系统级性能调优。特别针对国产系统环境提供了常见问题解决方案和必备插件推荐,帮助开发者高效配置开发环境。

v6b7n8m9q0的博客 1133

从零开始:如何用大语言模型构建你的第一个路径规划智能体

本文详细介绍了如何利用大语言模型(LLM)构建路径规划智能体,从基础概念到实战案例,涵盖TSP和CVRP问题的解决方案。通过选择合适的LLM模型、设计有效的提示工程和实现自我验证,即使没有运筹学背景也能快速上手。文章还提供了部署与优化智能体的实用技巧,帮助读者在物流配送、机器人导航等领域应用这一技术。

weixin_28256233的博客 484

Seata 1.2 接入 Spring Cloud Alibaba:分布式事务与 AT 模式落地实战

微服务架构将业务拆分为多个独立服务后,跨库跨服务的数据一致性成为必须解决的问题。分布式事务正是为协调多个数据库资源而生的技术方案,其核心在于全局提交与回滚机制。Seata 作为国内主流的分布式事务框架,通过 AT 模式在业务侵入性极低的前提下,利用 undo_log 和全局锁实现可靠的事务回滚。该方案可广泛应用于订单、库存、账户等典型场景,确保一次业务操作要么全部成功、要么全部回滚。当你在 Spring Cloud Alibaba 与 Nacos 环境中落地 Seata 1.2 时,掌握配置导入、注解使用和

weixin_33785108的博客 384

【导航】ESP32 教学篇目录 【快速跳转】

本文章 来自原创专栏《ESP32教学专栏 (基于ESP-IDF)》,讲解如何使用 ESP-IDF 构建 ESP32 的WIFI及连接的程序,发布文章并会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨! ↓↓↓通过下方 按钮 进入专栏主页↓↓↓ 专栏主页:点击进入→ESP32 教学专栏 (基于ESP-IDF) WIFI二级专栏:点击进入→ESP32 上的 WiFi ............

Augtons 的博客 3万+

【分布式事务】3、分布式事务解决方案Seata初体验

本文基于SpringBoot+Dubbo+Nacos+Seata+MyBatis-Plus搭建分布式事务案例,模拟电商下单场景,包含扣减库存、账户余额和创建订单三个关键步骤。案例完整展示了分布式系统中如何保证多个服务操作的原子性,为处理跨服务事务提供实践参考。

会飞的猴儿 1134

Solidworks转URDF避坑实录:从履带机器人到ROS仿真的完整配置流程

本文详细介绍了将Solidworks履带机器人模型转换为URDF格式并配置ROS仿真的完整流程,重点解析了坐标系设置、复杂关节定义、插件配置等关键步骤中的常见问题与解决方案,帮助开发者高效实现履带机器人在RVIZ和Gazebo中的精确仿真。

weixin_30693683的博客 456

【论文精读】Graph WaveNet-深度时空图模型

Graph WaveNet构建了一个自适应邻接矩阵,它能保留隐藏的空间依赖关系,能够自动从数据中发现未见的图结构。提出了一个有效且高效的框架,可同时捕捉空间和时间依赖关系。其核心思想是将其提出的图卷积与扩张因果卷积相结合,使每个图卷积层都能处理空间依赖关系。在交通数据集上评估了提出的模型,并以较低的计算成本获得了最先进的结果。

打酱油的葫芦娃 1007

springcloud springboot nacos版本对应

nacos 1.1.4版本存在服务异常离线问题,请谨慎使用。2.0.4.RELEASE(停止维护,建议升级)1.5.1.RELEASE(停止维护,建议升级)

2509_94006919的博客 509

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

<一> 、Java领域主流的分布式技术组合

一、微服务架构相关技术组合备注:对于新项目,Spring Cloud Netflix组合已不推荐使用,原因核心组件(如Eureka、Hystrix、Zuul、Feign)已停止维护。对于新项目,建议直接选择Spring Cloud Alibaba或Spring Cloud官方推荐的现代组件组合。

java coding girl 524

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SpringCloud和SpringCloudAlibaba的区别

SpringCloudAlibaba实际上对我们的SpringCloud2.x和1.x实现拓展组件功能. 1.nacos 分布式配置中心+分布式注册中心=Eureka+config 2.目的是为了推广阿里的产品,如果使用了SpringCloudAlibaba,最好使用alibaba整个体系产品 觉得有收获的,可以来一波赞赏! ** ......

卷王: 乌-鸦的博客 640

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring Cloud Alibaba 组件版本选择

如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。下表为按时间顺序发布的 Spring Cloud Alibaba 以及对应的适配 Spring Cloud 和 Spring Boot 版本关系(由于 Spring Cloud 版本命名有调整,所以对应的 Spring Cloud Alibaba 版本号也做了对应变化)如果需要使用 Spring Cloud Greenwich 版本,请在 dependencyManagement 中添加如下内容。2.0.4.RELEASE(停止维护,建议升级)

standovon的博客 407

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Docker Compose一键部署Seata与Nacos高可用整合方案

本文详细介绍了使用Docker Compose一键部署Seata与Nacos高可用整合方案,涵盖环境准备、架构设计、核心服务定义及生产环境优化建议。通过容器化编排实现分布式事务管理(Seata)与服务注册发现(Nacos)的高效整合,显著提升微服务开发与部署效率。

flink9streamer的博客 607
上一篇: 目录文件下使用Powershell7启动sentinel 错误: 找不到或无法加载主类 .port=8090
下一篇: Windows11环境下使用Alibaba RocketMQ
吴弈寒
博客等级 码龄5年 2粉丝 9原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值