微服务集成 Seata

news/2024/9/18 12:31:20/ 标签: 微服务, 架构, 云原生, Seata, 分布式事务

文章目录

  • 引入依赖
  • 配置TC地址
  • 其它服务
  • 使用

在这里插入图片描述


本篇文章介绍分布式架构下, 各个微服务之间要达成分布式事务, 引入 Seata 的步骤和使用方式.


引入依赖

首先,在 order-service 服务中引入依赖:

<!--seata-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><!--版本较低,1.3.0,因此排除--> <exclusion><artifactId>seata-spring-boot-starter</artifactId><groupId>io.seata</groupId></exclusion></exclusions>
</dependency>
<dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId><!--seata starter 采用1.4.2版本--><version>${seata.version}</version>
</dependency>

配置TC地址

order-service 中的 application.yml 中,配置 TC 服务信息,通过注册中心 nacos,结合服务名称获取 TC 地址:

seata:registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址type: nacos # 注册中心类型 nacosnacos:server-addr: 127.0.0.1:8848 # nacos地址namespace: "" # namespace,默认为空group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUPapplication: seata-tc-server # seata服务名称username: nacospassword: nacostx-service-group: seata-demo # 事务组名称service:vgroup-mapping: # 事务组与cluster的映射关系seata-demo: SH

微服务如何根据这些配置寻找TC的地址呢?

我们知道注册到Nacos中的微服务,确定一个具体实例需要四个信息:

  • namespace:命名空间
  • group:分组
  • application:服务名
  • cluster:集群名

以上四个信息,在刚才的 yaml 文件中都能找到:

在这里插入图片描述

namespace 为空,就是默认的 public

结合起来,TC 服务的信息就是:public@DEFAULT_GROUP@seata-tc-server@SH,这样就能确定TC服务集群了。然后就可以去 Nacos 拉取对应的实例信息了。

其它服务

其它参与分布式事务微服务也都参考 order-service 的步骤来做,完全一样。

使用

在事务发起的方法上加注解: @GlobalTransactional

在这里插入图片描述



http://www.ppmy.cn/news/1519511.html

相关文章

第 9 章 存放页面的大池子——InnoDB的表空间

9.1 回忆一些旧知识 9.1.1 页面类型 类型名称十六进制描述FIL_PAGE_TYPE_ALLOCATED0x0000最新分配&#xff0c;还没使用FIL_PAGE_UNDO_LOG0x0002Undo日志页FIL_PAGE_INODE0x0003段信息节点FIL_PAGE_IBUF_FREE_LIST0x0004Insert Buffer空闲列表FIL_PAGE_IBUF_BITMAP0x0005Inse…

C++:控制电脑状态控制

以下是一个控制计算机关机、重启、注销和休眠的程序。程序首先输出一个菜单&#xff0c;让用户选择要执行的操作。用户输入数字后&#xff0c;程序会根据用户的选择执行相应的操作。 关机&#xff1a;用户可以选择立即关机、设定定时关机任务或取消定时关机任务。如果选择立即关…

基于AG32 MCU微型光伏逆变器解决方案

基于AG32 MCU微型光伏逆变器解决方案 光伏并网发电系统拓扑结构有集中式、组串式、微型逆变器等多种方案。其中微型光伏逆变器&#xff08;Micro Photovoltaic inverter&#xff09;可单独将每块光伏电池输出的电能经过转换直接输送到电网&#xff0c;能对每块光伏电池进行最大…

UE5游戏——显示打击怪物的伤害值显示

要在Unreal Engine 5中实现显示打击怪物时的伤害数值&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 创建UI元素: 在UE5的内容浏览器中创建一个新的User Widget蓝图&#xff08;或者直接从项目设置的默认UI蓝图开始&#xff09;。在这个蓝图中添加一个Text Block组件用于…

个人旅游网(2.1)——使用阿里云在springboot项目中发送短信

文章目录 一、背景介绍二、详细步骤2.1、申请资质2.2、申请签名2.3、申请模板2.4、申请accessKey秘钥对2.5、SDK的使用[!]2.5.1、项目中导入依赖2.5.2、发短信的工具类 一、背景介绍 验证码发送背后的功能原理图&#xff1a; 想要在项目中实现上述发送验证码的功能&#xff0c…

AcrelEMS3.0企业微电网智慧能源平台的设计与应用-安科瑞 蒋静

1系统概述 1.1 概述 2020年9月&#xff0c;我国明确提出2030年“碳达峰”与2060年“碳中和”目标。2022年6月&#xff0c;科技部、国家发展改革委、工业和信息化部、生态环境部、住房城乡建设部、交通运输部、中科院、工程院、国家能源局共同研究制定了《科技支撑碳达峰碳中和…

MicroLEDP0.3/P0.4是全倒装COB超微小间距LED显示屏最小点间距吗

COB&#xff08;Chip on Board&#xff09;技术最早发源于上世纪60年代&#xff0c;是将LED芯片直接封装在PCB电路板上&#xff0c;并用特种树脂做整体覆盖。COB实现“点” 光源到“面” 光源的转换。点间距有P0.3、P0.4、P0.5、P0.6、P0.7、P0.9、P1.25、P1.538、P1.5625、P1.…

PHP动物收容所管理系统-计算机毕业设计源码94164

摘 要 利用PHP语言和相关技术&#xff0c;设计和实现一个高效、可靠的动物收容所管理系统。该系统将提供系统用户、动物信息管理、领养申请处理、志愿者管理、医疗记录管理、捐赠信息、系统管理等功能&#xff0c;旨在促进动物收容所管理工作的便捷和透明化。本研究首先介绍了动…

数据仓库系列16:数据仓库中的数据质量管理有哪些策略?

你是否曾经因为数据不准确而导致决策失误?是否因为数据不一致而浪费了大量时间去核对?在大数据时代,数据质量已经成为了企业成败的关键因素。本文将为你揭示数据仓库中数据质量管理的核心策略,帮助你建立一个可靠、高效的数据生态系统。 目录 引言&#xff1a;数据质量的重要…

qt4.8.7编译中出现const void* 禁止转换为void *

编译错误 错误忘截图&#xff0c;大概是如下头文件的问题&#xff1a; 该文件中的这一段函数报了如图所示的错误&#xff1a; // Test and set for pointerstemplate <typename T> Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expecte…

python网络爬虫(四)——实战练习

0.为什么要学习网络爬虫 深度学习一般过程:   收集数据&#xff0c;尤其是有标签、高质量的数据是一件昂贵的工作。   爬虫的过程&#xff0c;就是模仿浏览器的行为&#xff0c;往目标站点发送请求&#xff0c;接收服务器的响应数据&#xff0c;提取需要的信息&#xff0c…

展会直击 | 美格智能亮相IOTE 2024第二十二届国际物联网展·深圳站

IOTE 2024第二十二届国际物联网展深圳站于2024年8月28日—30日在深圳国际会展中心&#xff08;宝安&#xff09;开展&#xff0c;美格智能携最新的5G/4G AIoT模组与物联网行业解决方案精彩亮相&#xff0c;持续为客户带来通信技术、AI智能方面的创新产品和创新技术解决方案&…

pyautogui对键盘的几种操作,附代码示例

以下是关于 PyAutoGUI 对键盘的几种操作及相应的代码示例&#xff1a; PyAutoGUI 对键盘的操作主要包括文本输入、按键长按与释放、热键组合等。 文本输入可以使用 typewrite() 函数&#xff0c;例如&#xff1a;pyautogui.typewrite(Hello world!, interval0.5) &#xff0c…

滴滴前端日常实习一面

同步到csdn上 一面 水平居中、垂直居中的方法。align-item实现的是水平居中还是垂直居中。flex-direction为column的时候&#xff0c;是什么居中。js有什么数据类型。简单数据类型和复杂数据类型的区别深拷贝和浅拷贝的区别JSON.stringify有什么弊端怎么判断数组类型Vue3和Vu…

spring框架AOP、spring事管理

概念 Aspect Oriented Programming&#xff0c;面向切面编程是对面向对象编程的补充延续。 面向切面编程思想是将程序中非业务&#xff08;提交事务、打印日志、权限验证、统一异常处理&#xff09;然后在调用业务代码是&#xff0c;通过代理对象帮助我们调用这些提取出来的非业…

SecurityHeaders:为.Net网站添加安全标头,让Web更加安全、避免攻击!

网站的安全对于任何一家公司都是非常重要的。 为了保证Web安全&#xff0c;其中Http安全标头就是非常重要一个的措施。设定正确的安全头可以增强网站的安全性&#xff0c;因为它们可以帮助防止各种网络攻击&#xff0c;如跨站脚本&#xff08;XSS&#xff09;、点击劫持&#…

算法-汇总区间(228)

这题可以用区间来做&#xff0c;区间是什么&#xff0c;在编程问题中&#xff0c;区间常用于表示连续的数字集合&#xff0c;比如这道题【0&#xff0c;2】就表示0&#xff0c;1&#xff0c;2这样的数字集合。 所以这道题首先定义一个字符数组用来存输出结果&#xff0c;然后定…

Datawhale X 李宏毅苹果书 AI夏令营|机器学习基础之线性模型

1. 线性模型 线性模型是机器学习中最基础和常见的模型之一。在线性模型中&#xff0c;预测变量&#xff08;输入特征&#xff09;和目标变量&#xff08;输出&#xff09;之间的关系被建模为一个线性组合。数学形式可以表示为&#xff1a; 其中&#xff1a;x 是输入特征向量&a…

Linux平台中标麒麟安装单机DM8数据库

1 说明 数据库是现代信息化系统的基石&#xff0c;而国产数据库的发展则关乎国家的信息安全和国民经济的命脉。达梦数据库作为中国数据库领域的领军企业&#xff0c;其DM8数据库管理系统凭借其高性能、高可靠性、易用性等特点&#xff0c;逐渐赢得了用户的青睐。 本文详细介绍…

【开源免费】基于SpringBoot+Vue.JS渔具租赁系统(JAVA毕业设计)

本文项目编号 T 005 &#xff0c;文末自助获取源码 \color{red}{T005&#xff0c;文末自助获取源码} T005&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 渔…