当前位置: 首页 > article >正文

微服务集成 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 # 注册中心类型 nacos
    nacos:
      server-addr: 127.0.0.1:8848 # nacos地址
      namespace: "" # namespace,默认为空
      group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUP
      application: seata-tc-server # seata服务名称
      username: nacos
      password: nacos
  tx-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.kler.cn/a/286785.html

相关文章:

  • Linux 系统错误处理简介
  • JavaScript笔记APIs篇01——DOM获取与属性操作
  • 基于JAVA的微信点餐小程序设计与实现(LW+源码+讲解)
  • 构建高效稳定的网络环境
  • 电子应用设计方案101:智能家庭AI喝水杯系统设计
  • 麒麟监控工具rpm下载
  • 【 html+css 绚丽Loading 】000030 灵文闪烁符
  • 【Selenium】UI自动化实践——输入验证码登录
  • Mysql基础练习题 1084.销售分析3 (力扣)
  • 数据结构--初步了解(抽象分级)
  • 【专题】2024年中国AI人工智能基础数据服务研究报告合集PDF分享(附原数据表)
  • 架构设计(13)安全架构设计理论
  • QT +ffmpeg-4.2.2-win64-shared 拉取 RTMP/http-flv 流播放
  • 模型 冯/诺依曼思维模型
  • 实习的一点回顾单元测试
  • 网络爬虫调研报告
  • Force Yc 第九引导公告页HTML源码
  • Codeforces Round 969 (Div. 2)
  • ffplay源码分析(五)包缓存队列和帧缓存队列
  • 【微服务】springboot 自定义注解+反射+aop实现动态修改请求参数
  • WebAssembly技术实践
  • 通义说【线性代数】什么是线性
  • Git 基础使用--权限管理--用户和用户组授权
  • 【计算机网络】浏览器输入访问某网址时,后台流程是什么
  • 本地搭建和运行Whisper语音识别模型小记
  • 数分基础(04)EXCEL常用快捷键-中等规模数据不用拼命滚轮