微服务集成 Seata

news/2025/1/15 7:10:55/

文章目录

  • 引入依赖
  • 配置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;旨在促进动物收容所管理工作的便捷和透明化。本研究首先介绍了动…