前言

本系列博客基于B站谷粒商城,只作为本人学习总结使用。这里我会比较注重业务逻辑的编写和相关配置的流程。有问题可以评论或者联系我互相交流。原视频地址谷粒商城雷丰阳版。本人git仓库地址Draknessssw的谷粒商城


分布式事务


假使因为网络问题导致库存在提交订单时扣除成功,但是订单取消……本地事务回滚,但是调用的远程服务数据回滚失败。

分布式事务

事务的隔离级别



CAP

必须满足分区容错性,一致性和可用性二选一。



base




实现方案








seata使用

在每个需要使用的微服务的数据库添加undo_log表来记录事务操作

-- 注意此处0.3.0+ 增加唯一索引 ux_undo_log
CREATE TABLE `undo_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`branch_id` bigint(20) NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int(11) NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,`ext` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

因为我的nacos版本是1.3.1,所以我整合seata参考了这篇博文
naocs1.3.2整合seata1.3.0

但是有一点,seata不太适合高并发场景,它的各种隔离读,隔离写,都是需要获取全局锁,最后是一种串行化操作。

2022谷粒商城学习笔记(二十三)分布式事务相关推荐

  1. 2022谷粒商城学习笔记(二十二)rabbitMQ学习

    前言 本系列博客基于B站谷粒商城,只作为本人学习总结使用.这里我会比较注重业务逻辑的编写和相关配置的流程.有问题可以评论或者联系我互相交流.原视频地址谷粒商城雷丰阳版.本人git仓库地址Draknes ...

  2. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  3. 立创eda学习笔记二十三:如何将原理图和焊盘关联?(交叉选择)

    这是我在网上看到的一个提问,我对这个提问有两个理解, 1,如何显示原理图符号和PCB封装之间的对应位置关系? 那么可以使用以下的交叉选择功能. 这个功能是用来跳转原理图符号和PCB封装之间的对应位置. ...

  4. 分布式电商项目 谷粒商城 学习笔记<2>

    文章目录 六.三级分类 1.按照父子类的结构获取所有分类 2.跨域问题的解决 1.使用nginx部署为同一域 2.让服务器告诉预检请求能跨域 3.过滤器优先级问题 4.删除 5.增加修改拖拽 七.品牌 ...

  5. python学习笔记(二十三) -- 多进程和多线程

    目录 多线程多进程的意义 多进程的使用 方式一(fork):  只能在Unix/Linux/Mac系统下执行,windows不可以 方式二(multiprocessing.Process): 全平台通 ...

  6. 谷粒商城学习笔记(2)-- 环境搭建项目结构创建

    一.环境 虚拟机ip192.168.174.128 本地ip192.168.31.14 本地和虚拟机要互相ping通 二.Docker 虚拟化容器技术.Docker基于镜像,可以秒级启动各种容器.每一 ...

  7. Mr.J-- jQuery学习笔记(二十三)--applycall

    之前在学习JavaScript的时候写的:Mr.J--JS学习(继承模式发展史)里面写了我对原生JS call和apply的理解,以及原型链的应用:prototype apply&call J ...

  8. IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

    1.NSKeyedArchiver.NSKeyedUnArchiver 1).archiveRootObject:toFile 归档对象到这个路径文件 2).unarchiveObjectWithFi ...

  9. Java学习笔记(二十三)日志体系(logback)

    Java日志体系(logback) logback 简介 师出同门,与log4j一样,logback也是由Ceki Gülcü开发的开源日志组件,可以说是log4j的改进版:在现如今的项目中,logb ...

最新文章

  1. 如何确定foreach循环中的第一次和最后一次迭代?
  2. html盒子高度自动收缩,CSS如何解决背景图随父盒子高度变化而拉伸或收缩的问题...
  3. 【php】使用gdb调试php程序
  4. IntelliJ IDEA 2019 激活码 | 全产品 | 跨平台 | Goland | PhpStorm | Rider | CentOS | Windows
  5. NSHashTable and NSMapTable
  6. linux win10 时间同步服务器,windows和linux下服务器时间如何校正?
  7. sqlserver实验心得体会_SQLServer数据库实训总结
  8. 服务器 'XXXXXX' 上的 MSDTC 不可用。解决方法
  9. 原画学习步骤,零基础一步步学原画
  10. GD32F103学习笔记(3)——新建工程
  11. 看着夜晚城市的广告都是用CorelDRAW发光字体效果很感叹
  12. 网络工程师中级--上午科目
  13. 12.接口测试报告包含哪些内容
  14. 互联网监控直播-LiveGBS分发出RTMP、HLS、FLV、RTSP视频流说明介绍
  15. VS2008SP1的MFC测试-(OFFICE2007风格)Ribbon风格(DJ尐舞图形画板2008)
  16. Tagxedo在线云词成像制作工具
  17. Oracle建表语句及日期处理(oracle)
  18. html并排div可重叠,html – 并排堆叠div
  19. python中\t \r \s \n \f各种转移字符含义
  20. 表情符号存入mysql_emoji等表情符号存mysql的方法

热门文章

  1. Exp8 web基础 20164323段钊阳
  2. -bash: /usr/bin/rm: 参数列表过长
  3. m3u8下载合并图片文件(但实际上还是ts文件)
  4. MD5与SHA加密算法
  5. python 爬虫 简单爬虫教程(requests + selenium )
  6. windows防火墙开启端口
  7. 二维几何图形创作方法(Geometry2D)
  8. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
  9. 第一次开发EOS区块链的经验
  10. 一体化3团队项目记录