分布式事务和spring内置的事务

分布式事务

单个事务的分布式系统

因为微服务用feign远程调用不同服务的接口, 还使用了rest风格如果抛出异常就返回一个状态码, 因为feign的内部实现了 如果发现抛出的异常状态码不是200 左右他就会自动抛出异常,把异常从一个微服务转到另一个微服务.(异常传过来了 事务的特性就传过来了)

上面的说明只能是单个事务. . 如果遇到多个事务上面的方案就处理不了了…

超过两个事物的分布式系统

以后更新,最近在准备面试 这块只是知道一点

spring内置的事务

编程 事务 (不用) 注解 事务 spring的事务 是基于AOP的

一 . 什么是事务: 事务:指的是逻辑上的一组操作,组成这组操作的各个单元要么一起成功要么一起失败。

二 . 事务的特性 : 1 . 原子性:事务的不可分割 2 . 一致性:事务执行的前后,数据完整性保持一致。 3 . 隔离性:一个事务的执行,不应该受到其他事务的干扰。 4 . 持久性:一旦事务结束,数据就持久到数据库中。

三. 如果不考虑隔离性,引发安全性问题: 1 . 读问题: (1) . 脏读 :一个事务读到另一个事务未提交的数据。 (2) . 不可重复读 :一个事务读到另一个事务已经提交update的数据,导致一个事务中多次查询结果不一致。 (3) . 虚读 :一个事务读到另一个事务已经提交insert的数据,导致一个事务中多次查询结果不一致。

四 . 解决读问题: 设置事务隔离级别 1 . read uncommitted :以上读问题都有可能发生 2 . read committed :避免脏读,但是不可重复读和虚读有可能发生。 3 . repeatable read :避免脏读和不可重复读,但是虚读有可能发生。 4 . serializable :以上读问题都能解决。

经验分享 程序员 微信小程序 职场和发展