微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

分布式事务

文章目录

  • 微服务框架
  • 分布式事务
  • 38 动手实践
    • 38.2 实现XA 模式
      • 38.2.1 实现XA 模式

38 动手实践

38.2 实现XA 模式

38.2.1 实现XA 模式

Seata的starter已经完成了XA模式的自动装配,实现非常简单,步骤如下:

  1. 修改application.yml文件(每个参与事务的微服务),开启XA模式:

先看到storage 服务的配置文件【当然其实每个微服务都要配】

data-source-proxy-mode: XA

这里笔者盲猜很多人没有把上一节课老师说的每个服务都配好的任务完成,所以一会儿会出现错误

例如这种

直接复制到另外两个微服务

order 服务

账户服务

OK

  1. 给发起全局事务的入口方法添加@GlobalTransactional注解,本例中是OrderServiceImpl中的create方法:

虽然简单,但是上一节课的原理确实醍醐灌顶,自己实现只是借助了框架大佬的惠利

  1. 重启服务并测试

三个微服务全部重启,

OK,

看看seata server的运行日志

可以看到三个服务,重新进行了注册

进行测试

先看看数据库

订单表目前有一个订单

账户表目前这个用户的余额是 600

库存表该商品 目前的库存有8 个

使用postman 发起咱们以前发过那个请求

【正确的情况】

OK,没有问题,这个5 是订单表的订单 id

检查一下数据库

OK,订单新增了 一个

账户余额 少了 200

库存也少了两个

【异常情况】

这里笔者就录个屏了

因为它会回滚数据库信息不会发生变化

OK,牛逼!!!!!!!,这样一致性就得到了 保障

看看IDEA 的日志

库存服务报了错

订单服务也报了错

账户服务,进行了一次回滚

看到弹幕里面很多人失败了,

这一坨,三个微服务都要配,还有pom 文件加依赖

可以看到,实现起来非常简单【但是原理确实潇洒】

这就是XA 模式

微服务框架 SpringCloud微服务架构 分布式事务 38 动手实践 38.2 实现XA 模式相关推荐

  1. 微服务框架 SpringCloud微服务架构 27 自动补全 27.2 自定义分词器

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  2. 微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.5 排序和搜索关键字高亮

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  3. 微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.4 广告置顶

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  4. 微服务框架 SpringCloud微服务架构 26 数据聚合 26.5 多条件聚合

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  5. 使用“即时消息服务框架”(iMSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)...

    1,示例解决方案介绍 在上一篇 <消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现>中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看如何使用消息服务框架(MSF ...

  6. 微服务框架 SpringCloud微服务架构 服务异步通讯 51 死信交换机 51.3 延迟队列 51.3.1 延迟队列 51.3.2 延迟队列插件

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] 服务异步通讯 文章目录 微服 ...

  7. 最新微服务框架SpringCloud Alibaba介绍,搭建

    微服务和SpringCloud Alibaba详细介绍(一),手把手搭建微服务框架 PS:本博客是本人参照B站博主:JAVA阿伟如是说 的视频讲解手敲整理的笔记 跟着一起手动搭建的框架 供大家一起学习 ...

  8. 华为18级大牛倾情奉送:分布式服务框架和微服务设计原理实战文档,啃完发现涨薪如此简单

    前言 分布式服务框架不仅仅包含核心的运行时类库,还包括服务划分原则.服务化最佳实践.服务治理.服务监控.服务开发框架等,它是一套完整的解决方案,用来协助应用做服务化改造,以及指导用户如何构建适合自己业 ...

  9. dubbo调用超时回滚_微服务痛点基于Dubbo + Seata的分布式事务(AT模式)

    前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. ...

最新文章

  1. graphpad做折线图坐标轴数字_多组数据制作折线图,四步让你的图表实用又美观,老板看了都说好...
  2. 快刀斩“乱码”,你需要这些套路!
  3. 疫情之下,将业务迁移至云端会是一个正确的选择吗?
  4. oracle 计算公式解析,用PL/SQL如何实现公式解析计算
  5. python怎么设置颜色深浅变化_Python赋值、深浅copy
  6. (王道408考研操作系统)第一章计算机系统概述-第一节2:操作系统的发展史
  7. mysql explain索引_mysql 索引+explain
  8. 为什么机器学习行业的发展离不开 “开源”
  9. Selectsort Tournamentsort Heapsort
  10. Bellman-ford算法、SPFA算法、SPFA判断负环(附例题)
  11. 使用Certbot申请ssl证书
  12. 【神奇的bug】main方法无法执行
  13. 程序员面试揭秘之程序员靠什么途径去美国工作?
  14. 鞍山c语言培训,10_鞍山科技大学:C语言与数据结构_ppt_大学课件预览_高等教育资讯网...
  15. JDK9相比于JDK8,究竟变强了多少
  16. python异常捕获和写到mysql_python捕获数据库异常
  17. Linux 学习笔记(六):Linux
  18. 电解电容、钽电容、普通电容
  19. gx3脉冲设置_皇家墨尔本理工大学-MicroStrain 3DM-GX3-35用于无人机 - 激光雷达系统的研制及其在森林资源清查...
  20. 六西格玛管理方法简介

热门文章

  1. Python序列类型-字符串
  2. 代码在线高亮工具[写源代码的word可用]
  3. 成功之前,大佬都在干什么
  4. java字符串_005
  5. 西方执意政治解读索契冬奥 唱衰俄罗斯复兴前景
  6. TCGA 概述及 Barcode 详解
  7. 微信小程序引入map组件并在地图上标点
  8. android app功耗测试方法,APP功耗测试方法
  9. 使用姿态描述子与粗糙集理论
  10. 如何在OpenStack Kolla上部署Tungsten Fabric(附14个常见的配置问题)