首页 > 其他分享 >@Transactional注解实现分布式事务(SAGA方案)

@Transactional注解实现分布式事务(SAGA方案)

时间:2023-03-01 15:23:43浏览次数:36  
标签:事务 服务 SAGA Transactional 本地 注解 分布式

分布式事务SAGA方案实现方式有两种

(1) SAGA - Choreography 策略

 通过事件驱动的方式来进行事务协调

 

代码实现方式:

订单服务使用@Transactional注解先执行本地事务再调用库存服务

库存服务使用@Transactional注解先执行本地事务再调用物流服务

物流服务使用@Transactional注解执行本地事务

如果物流服务执行失败本地事务回滚,先触发库存服务本地事务回滚,再触发订单服务本地事务回滚

(2) SAGA - Orchestration 策略

集中式协调器负责服务调用以及事务协调,阿里的 Seata 分布式事务框架中实现了此策略

标签:事务,服务,SAGA,Transactional,本地,注解,分布式
From: https://www.cnblogs.com/xiao-xin-xin/p/17168245.html

相关文章

  • 使用StringRedisTemplate实现redis分布式锁
    背景:单个接口可能同时被多个用户调用,但是每个用户使用的数据都是不一样,因此需要使用分布式锁解决数据减少了没有即使减少的问题使用的指令来自的edis的setnx命令,setnx(k,v......
  • 分布式锁 -- redis
    原理redis设置一个key和value,如果存在则获取锁失败,不存在则获取锁成功处理业务,业务处理完成后删除这条数据,可以带个失效时间。 代码publicvoidhandleInvoice(Subm......
  • 开源分布式任务调度系统就选:DolphinScheduler
    分布式任务调度这个话题是每个后端开发和大数据开发都会接触的话题。因为应用场景的广泛,所以有很多开源项目专注于解决这类问题,比如我们熟知的xxl-job。那么今天要给大家......
  • 《分布式技术原理与算法解析》学习笔记Day25
    负载均衡负载均衡是分布式可靠性中非常关键的一个问题,它在一定程度上反映了分布式系统对业务处理的能力。什么是负载均衡?负载均衡可以分为两种:请求负载均衡,即将用户的......
  • 分布式文件系统FastDFS的HTTP访问
    1概述在文件上传的时候,上传成功的信息中有提示我们可以通过某个路径去访问上传的文件,但是我们直接访问这个路径,却不可以,那么已经上传到FastDFS文件系统中的文件,我们如何在......
  • 分布式事务-消息
        ......
  • 简述react、redux、react-redux、redux-saga、dva之间的关系
    【react】定位:React是一个用于构建用户界面的JavaScript库。特点:它采用声明范式来描述应用,建立虚拟dom,支持JSX语法,通过react构建组件,能够很好的去复用代码;缺点......
  • mysql分布式架构测试
    mysql分布式架构测试目录机器准备mysqlcluster介绍下载安装包通用节点执行项安装管理节点安装数据节点配置安装sql节点查看集群状态sql节点插入数据备份测试......
  • 《分布式技术原理与算法解析》学习笔记Day24
    分布式缓存在计算机领域,缓存是一个非常重要的、用来提升性能的技术。什么是分布式缓存?缓存技术是指用一个更快的存储设备存储一些经常用到的数据,供用户快速访问。分布......
  • 七种常见的分布式事务
    分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务。七种:2PC,3PC,TCC,Saga,本地事务表,MQ事务消息,最大努力......