首页 > 其他分享 >Spring Cloud - Seata

Spring Cloud - Seata

时间:2022-12-21 22:23:09浏览次数:38  
标签:事务 Seata Spring undo 镜像 全局 TC Cloud log

分布式事务:
第一阶段要做的事情:
1. 开启全局事务,获取全局事务id;
2. 执行业务逻辑,生成前置镜像、后置镜像,插入undo_log,执行本地事务;
3. 在插入undo_log之前,会发起一个rpc请求,调用TC,搜集行锁信息,生成全局锁。

第二阶段:分布式事务协调者根据事务的状态,到底是进行真正的提交还是回滚。

设计亮点:
1. 应用层基于SQL解析实现了自动补偿,从而最大程度的降低业务侵入性;
2. 将分布式事务中TC(事务协调者)独立部署负责事务的注册、回滚;
3. 通过全局锁实现了写隔离与读隔离;

存在的问题:
1. 性能损耗:前置镜像、后置镜像、undo_log,before commit(与TC通讯,判断锁冲突)....这些操作都需要一次远程通讯RPC,而且是同步的,另外undo log写入时blob字段的插入性能是不高的,每条写SQL都会增加这么多开销,粗略估计会增加5倍响应时间。为了进行自动补偿,需要对所有dml操作生成前后镜像并持久化,性价比不高。

标签:事务,Seata,Spring,undo,镜像,全局,TC,Cloud,log
From: https://www.cnblogs.com/zhf123/p/16997368.html

相关文章

  • springboot 事务
    springboot事务笔记详情(bilibili.com)1.快速使用事务支持备注:使用事务的时候,一定要首先确保当前数据库的引擎是否支持事务,如果数据库引擎不支持事务,则任何配置都......
  • Spring IOC源码(四):IOC容器之 beanDefinition解析
    1、源码解析配置文件的bean定义解析在obtainFreshBeanFactory()方法中完成的,核心解析是在DefaultBeanDefinitionDocumentReader的parseBeanDefinitions()方法中完成。......
  • SpringBoot大文件上传详解及实例代码
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好......
  • SpringBoot的学习
    SpringBootSpringBoot最核心的东西:自动装配!!!很重要!以及他的SpringApplication.run(); 方法配置用什么写:可以用xml,和springboot自带的yaml自动装配原理?重要:涉及......
  • Spring提取@Transactional事务注解的源码解析
    Spring提取@Transactional事务注解的源码解析声明:本文是自己在学习​​spring​​注解事务处理源代码时所留下的笔记;难免有错误,敬请读者谅解!!!1、事务注解标签<tx:annotatio......
  • java 实现文件夹上传(springBoot 框架)
    有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功......
  • 动态更改Spring定时任务Cron表达式的优雅方案
    "Mostofyouarefamiliarwiththevirtuesofaprogrammer.Therearethree,ofcourse:laziness,impatience,andhubris."-LarryWall“程序员的美德:懒惰,不耐......
  • 使用 JDBC 和 Spring 访问关系数据
    本指南将引导您完成使用Spring访问关系数据的过程。您将构建什么您将构建一个应用程序,该应用程序使用Spring来访问存储在关系数据库中的数据。​​JdbcTemplate​​你需......
  • 使用 Spring Data Redis 发布和订阅使用 Redis 发送的消息
    本指南将引导您完成使用SpringDataRedis发布和订阅使用Redis发送的消息的过程。您将构建什么您将生成一个应用程序,该应用程序用于发布字符串消息,并使用为POJO订阅......
  • 【源码透视】SpringBoot的SPI机制
    一、从java类加载机制说起java中的类加载器负载加载来自文件系统、网络或者其他来源的类文件。jvm的类加载器默认使用的是双亲委派模式。三种默认的类加载器BootstrapCla......