栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式事务

产生分布式事务的最大原因是网络抖动的原因导致的

本地事务

本地事务具有四个特性 ACID

原子性、一致性、隔离性、持久性

事务的隔离级别:

以mysql为例: 读未提交(脏读)、读提交(不可重复读)、可重复读(幻读)、序列化

事务的传播行为:

当事务嵌套时公用/不公用一个事务

required(公用)、requires_new(不公用)

springboot使用事务传播时的一个问题
同一个对象事务方法默认失效, 原因 绕过了代理对象 事务使用代理对象来控制的
 *  解决:使用代理对象来调用事务方法
 *  	1. 引入 spring-boot-starter-aop 它帮我们引入了aspectj
 *  	2. @EnableAspectJAutoProxy(exposeProxy = true) [对外暴露代理对象] 开启动态代理功能 而不是jdk默认的动态代理 即使没有接口也可以创建动态代理
 *		3. 本类互调用代理对象 通过AopContext
分布式事务

CAP定理

一致性、可用性、分区容错性,三者不可能同时并存,只能保证AP或者CP
常用的方式为AP 保证服务可用,舍弃强一致

分布式事务中的Raft算法

存在三种类型的角色:领导 选举者 随从

领导选举、日志复制

自旋时间、心跳时间

base定理:保证最终一致性

分布式事务几种方案:

2PC模式3PC模式柔性事务-TCC事务模式柔性事务-本地事务表柔性事务-最大努力性通知柔性事务-可靠消息-最终一致性方案

柔性事务都是用来保证最终一致性:

最终一致性能够容忍高并发以及系统异构

如何保证消息的可靠性?

消息队列在使用过程中会存在消息丢失、消息重复、消息积压的情况,如何解决?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号