springboot3(cloud 2022.0.0)整合seata1.7.1

news/2024/7/7 19:13:49/文章来源:https://www.cnblogs.com/Zz198/p/18279317
一、第一步下载对应版本的seata服务

 

 

二、修改conf下的application.yml配置

注意:主要是连接nacos的一些配置:注册中心和服务发现的配置

 1 #  Copyright 1999-2019 Seata.io Group.
 2 #
 3 #  Licensed under the Apache License, Version 2.0 (the "License");
 4 #  you may not use this file except in compliance with the License.
 5 #  You may obtain a copy of the License at
 6 #
 7 #  http://www.apache.org/licenses/LICENSE-2.0
 8 #
 9 #  Unless required by applicable law or agreed to in writing, software
10 #  distributed under the License is distributed on an "AS IS" BASIS,
11 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #  See the License for the specific language governing permissions and
13 #  limitations under the License.
14 
15 server:
16   port: 7091
17  
18 spring:
19   application:
20     name: seata-server
21  
22 logging:
23   config: classpath:logback-spring.xml
24   file:
25     path: D:\seatalog\seata-server-1.7.0\seata\logs.
26   extend:
27     logstash-appender:
28       destination: 127.0.0.1:4560
29     kafka-appender:
30       bootstrap-servers: 127.0.0.1:9092
31       topic: logback_to_logstash
32  
33 console:
34   user:
35     username: seata
36     password: seata
37 seata:
38   config:
39     # support: nacos, consul, apollo, zk, etcd3
40     type: nacos # 指定配置中心为nacos
41     nacos:
42       server-addr: 127.0.0.1:8848  # nacos的ip端口
43       group: DEFAULT_GROUP    # 对应的组,默认为DEFAULT_GROUP
44       namespace: e984372a-17f3-44fc-aa0e-7b3c384fe94c # 对应的命名空间,在nacos中配置
45       data-id: seataServer.properties # nacos中存放seata的配置文件,后面会提该文件的使用方式,相当于seata服务启动的时候需要注册到nacos,并使用nacos中的配置文件
46   registry:
47     # support: nacos, eureka, redis, zk, consul, etcd3, sofa
48     type: nacos
49     nacos:
50       application: seata-server
51       server-addr: 127.0.0.1:8848
52       group: DEFAULT_GROUP
53       namespace:
54       cluster: default
55       username:
56       password:
57       context-path:
58   store:
59     # support: file 、 db 、 redis
60     mode: file
61 #  server:
62 #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
63   security:
64     secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
65     tokenValidityInMilliseconds: 1800000
66     ignore:
67       urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login

  2.1配置好之后创建seata服务连接数据库,库中插入表。在 \seata\script\server\db 下有sql文件

  2.2在需要用到seata的业务数据库下创建undo_log表

 1 drop table `undo_log`;
 2 CREATE TABLE `undo_log` (
 3   `id` bigint(20) NOT NULL AUTO_INCREMENT,
 4   `branch_id` bigint(20) NOT NULL,
 5   `xid` varchar(100) NOT NULL,
 6   `context` varchar(128) NOT NULL,
 7   `rollback_info` longblob NOT NULL,
 8   `log_status` int(11) NOT NULL,
 9   `log_created` datetime NOT NULL,
10   `log_modified` datetime NOT NULL,
11   `ext` varchar(100) DEFAULT NULL,
12   PRIMARY KEY (`id`),
13   UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
14 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

  2.3:访问nacos看一下seata服务有没有被naocs发现
  2.4:为seata创建命名空间,名字要与data-id一致

配置文件在 \seata\script\config-center下有个config.txt复制到naocs配置文件中  主要要修改自己的数据库地址,绑定seata表

 

三、双击启动bin目录下脚本,seata-server.bat
 浏览器访问:http://127.0.0.1:7091 可视化界面

四、整合到项目中导入的依赖:

  <!--分布式事务seata--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency>

 

在yaml文件中的配置:

 1 seata:
 2   tx-service-group: gulimall-ware # 事务分组名称,要和服务端对应
 3   service:
 4     vgroup-mapping:
 5       gulimall-ware: default # key是事务分组名称 value要和服务端的机房名称保持一致
 6   registry:  # 业务服务每一个都需要配置需要在naocs发现seata服务
 7     type: nacos
 8     nacos:
 9       server-addr: 127.0.0.1:8848
10       namespace: public
11       group: DEFAULT_GROUP
12       application: seata-server

 

启动项目测试
使用方法:在业务总事物方法上加上  @GlobalTransactional

如果回滚失效,基本上是没有获取到XID,查看XID方法: RootContext.getXID()
解决方法:不要导错依赖,使用:spring-cloud-starter-alibaba-seata
     或者重写  RequestInterceptor的apply方法 把XID传递到远程服务请求头中。feign底层会丢失所有请求头,创建新客户端进行http调用,所以会有XID为null的问题。

 

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

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

相关文章

Linux 文件系统扩展

今天发现/usr目录空间不够。需要扩展。之前没有处理过。今天试了一下调整。并且记录下来整个过程。 1 使用fdisk -l 查看磁盘信息2、使用fdisk /dev/sda 对磁盘进行分区操作完后,多了一个/dev/sda34 使用 pvcreate /dev/sda3创建物理卷5、使用vgextend ol /dev/sda3 扩展磁盘 …

华为云技术专家硬核分享,云原生中间件如何加速业务发展

云原生中间件作为云原生架构中的关键组件,在核心能力建设、业务连续性、生态丰富性等诸多方面也面临着一系列挑战。本文分享自华为云社区《云原生中间件,构筑软件安全可信的连接桥梁》,作者: 华为云PaaS服务小智。 近日,在华为云开发者大会2024期间,来自华为云PaaS服务,…

KES数据库实践指南:探索KES数据库的事务隔离级别

本文深入探讨了KES数据库中的并发控制机制和事务隔离级别的重要性及实施方法。我们从并发控制的基本概念出发,详细解释了ACID原则如何通过不同的隔离级别得以实现,以及在串行化与并行执行之间的权衡取舍。通过实际操作和示例,我们展示了不同隔离级别下可能出现的脏读、不可重…

最新扣子(Coze)实战案例:图像流工具之创建一个精美的LOGO,完全免费教程

🧙‍♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完全免费学习。 👀 关注公众号:斜杠君,可获取完整版教程。 👍🏻如果想学习AI应用搭建,请关注公众号,及时获取最新免费教程。温馨提示:本文内…

2024年6.23-6.26学习总结

2024年6.23--6.26学习总结 考试 24号考计算机网络,26号考形式语言与自动机。这几天基本都在复习。 形式语言与自动机 dfa极小化 1.先删去不可达状态和陷阱态。 2.假如状态有q1,q2,q3,q4,q5,q6,q7,q8,先将所有终止状态取出分为一组比如{q6,q8},然后在另一组中找到无法区分的状…

大型能源电力集团需要什么样的总部数据下发系统?

能源电力集团的组织结构是一个复杂的系统,包括多个职能部门和子分公司。这些子分公司负责具体的电力生产、销售、运维等业务。这些部门和公司协同工作,确保电力生产的顺利进行,同时关注公司的长期发展、市场拓展、人力资源管理、财务管理和公司治理等方面。由于大型能源电力…

ros slam microros之H电桥电机驱动原理介绍

一、电机驱动原理介绍正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。1.1 H桥电路让电机动起来只需要通电就行,比如我们用的额定电压为12V 130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给…

ros slam 之移动机器人常用传感器

本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。 对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS HPE (慧与) 定制版

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC…

day33-Django3.2(二)

四、视图 django的视图主要有2种,分别是函数视图和类视图.现在刚开始学习django,我们先学习函数视图(FBV),后面再学习类视图[CBV]. 4.1、请求方式 web项目运行在http协议下,默认肯定也支持用户通过不同的http请求发送数据来。django支持让客户端只能通过指定的Http请求来访问到…

为什么单元测试不是持续交付的唯一答案

残酷的事实是,大多数企业在持续交付的道路上相当落后。为了让持续集成和持续交付(CI/CD)成为现实,企业必须审查其内部流程,并重新思考如何处理软件交付生命周期。过去的清单和评论根本不是前进的方向。残酷的事实是,大多数企业在持续交付的道路上相当落后。对软件交付过程…

蓝桥杯Java组常用知识点

备战蓝桥杯学习笔记基本数据类型 int的取值范围: -2^31 ~ 2^31-1 -2147483648 ~ 2147483647(约等于10的9次方) long long的取值范围: -2^63 ~ (2^63-1) -9223372036854775808 ~ 9223372036854775807(约等于10的18次方) 输入输出 使用文件流对输入输出的重要性:https://…

Linux内存不够了?看看如何开启虚拟内存增加内存使用量

1、为什么要使用虚拟内存 当我们没有多余的钱去购买大内存的云服务器时,但是当前服务器里面的软件和程序运行的比较多导致内存不够用了。这个时候可以通过增加虚拟内存来扩大内存容量。但是在启用虚拟内存时,需要仔细考虑系统的实际需求和硬件配置,以及权衡虚拟内存的优缺点…

camunda数据库表结构详细说明

本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎的数据库架构和ER模型,Camunda7.19.0共49张表,包括了BPMN流程引擎、DMN规则引擎、CMMN引擎、历史数据、用户身份等方面的表结构定义,以及表与表之间的关联关系。本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎…

camunda多租户技术架构介绍和测试验证

多租户考虑的是单个 Camunda 安装应该为多个租户提供服务的情况。对于每个租户,应做出一定的隔离保证。例如,一个租户的流程实例不应干扰另一租户的流程实例。 多租户可以通过两种不同的方式实现。一种方法是每个租户使用一个流程引擎。另一种方法是仅使用一个流程引擎并将数…

IEEE 8802-3 以太网标准解读

PHY: CarrierSense 载波侦听 ReceveDataValid 接受数据有效 CollisionDetect 碰撞检测 Transmitting 传输中 TransmitBit 传输比特 SFD 10101011 开始 ReceiveBit 接受比特 Wait 等待1、MA_DATA.request 定义了MAC客户端访问单独实体或者z在组地址的前提下访问多个实体 MA…

在C#中使用RabbitMQ做个简单的发送邮件小项目

在C#中使用RabbitMQ做个简单的发送邮件小项目 前言 好久没有做项目了,这次做一个发送邮件的小项目。发邮件是一个比较耗时的操作,之前在我的个人博客里面回复评论和友链申请是会通过发送邮件来通知对方的,不过当时只是简单的进行了异步操作。 那么这次来使用RabbitMQ去统一发…

【进阶篇】Java 项目中对使用递归的理解分享

笔者在最近的项目开发中,遇到了两个父子关系紧密相关的场景:评论树结构、部门树结构。具体的需求如:找出某条评论下的所有子评论id集合,找出某个部门下所有的子部门id集合。【进阶篇】Java 项目中对使用递归的理解分享 目录【进阶篇】Java 项目中对使用递归的理解分享前言一…

C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core各种编程常用语法、算法、技巧、中间件、类库等等。GitHub开源地址:https://github.com/YSGStudyHards/DotNetE…

2024年6月文章一览

2024年6月编程人总共更新了5篇文章: 1.2024年5月文章一览 2.《编译原理》阅读笔记:p18 3.《编译原理》阅读笔记:p19-p24 4.《编译原理》阅读笔记:p25-p32 5.《Programming from the Ground Up》阅读笔记:p1-p18 6月再挖一个坑,开始《Programming from the Ground Up》的学…