分布式事务框架 JTA,TCC,seata

2024-04-09 17:18

本文主要是介绍分布式事务框架 JTA,TCC,seata,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JTA  AND TCC

 

需要一个框架协调者: 当两个同时成功了才执行commit 否则执行rollback

二阶段 : 第一阶段预提交sql  第二部执行commit或者rollback

XA: 两阶段提交

JTA: java规范的两阶段提交  (中间件)atomikos (jta规范)

 

atomikos 将jdbc的连接封装了一层 用atomikos 操作sql的事物

 

CAP  BASE 概念

 

 

其中分区容错 是必须满足的  (两个分布式之间网络的通讯有可能断开数据不能同步,分区容错性解决了两个分布式系统就算网络断开也可以独立通讯) 至少保证访问单个的也可以访问

 

一致性和可用性只能满足其一

一致性(当两个服务之间不能通信,往web1中插入数据化web2中查不到的,返回提示没有这个数据或者数据未同步)

可用性(当两个服务之间不能通信,往web1中插入数据化web2中查不到的,返回null 查不到)

zookeeper cp 一致性

 

base   把cap 调优 折中处理  在特定的业务下满足一点一致性并且也满足一些可用性

 

 

 

 

和jta的区别  事物的锁密度小  并发变强

总结 : jta的方式对于事物是一个一个排队执行的  ,事物锁的强度大, 耗性能和时间 ,对于单个项目可以考虑

tcc : 虽然他的性能更高,锁的强度小,但是代码侵入性很大, 你需要自己写代码去回滚 .

 MQ:   还有使用消息队列的方式去提交回滚事物

 

SEATA

每一个对应自己的db

 

 TC:事务协调者  全局的  用于记录和统计事物 

 TM: 事务管理者  事务的发起 管理分支  用于创建全局事物 真正做事的

  RM:资源管理器   一个代理的连接  返回一个数据库连接

Seata解析-TM、RM、TC交互流程梳理  https://blog.csdn.net/weixin_38308374/article/details/108329792

@Transactional  spring的事务注解 :  1.建立连接 2.开启事务 3.执行方法 4.提交或者回滚

 

将每个系统的事物注册到事物管理者里面  第一个注册进去的事物会有一个groupid  会保存起来 , 同一个方法中使用不同的事物  事物的grouypid是相同的,为了让他进行同时回滚操作

事物协调者发现异常后通知各个分支事物回滚

groupid  的传递 是通过拦截器   

这篇关于分布式事务框架 JTA,TCC,seata的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888756

相关文章

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满