事务基础篇

事务基础篇

什么是事务

事务可以看作是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败!

本地事务

在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来完成的,因此叫做数据库事务,由于应用和数据库通常在一台服务器,所以基与关系型数据库的事务又被叫做本地事务

数据库事务的四大特性ACID:

  1. A(Atomic):原子性 ,构成事务的所有操作要么全部完成,要么全部失败!
  2. C (Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破化。
  3. I(Isolation):隔离性,是指并发的两个事务的执行互不干扰。
  4. D(Durability):持久性,事务完成后,该事务对数据库的更改会被持久化到数据库,且不会被回滚。

分布式事务

随着互联网的快速发展,软件系统由单体系统转变为微服务。
在这里插入图片描述
分布式系统会把一个应用系统拆分为可独立运行的多个微服务,因此需要服务与服务之间的远程调用协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务

分布式事务产生的场景

典型的场景就是微服务架构
跨JVM 进程产生分布式事务

单体系统访问多个数据库实例
跨数据库实例产生分布式事务

多个微服务访问同一个数据库实例
跨JVM 进程产生分布式事务

分布式事务基础理论

CAP理论

理解CAP
CAP 是 Consistency、Avalibility、Partition tolerance 三个单词的缩写,分别表示 一致性、可用性、分区容错性。

C - consistency
一致性是指写操作后的读操作可以读到最新的数据状态,当数据分布在多个节点上,从任意节点读到的数据都是最新的状态。
如果请求失败,可以返回错误消息,但不能返回旧数据。

A - Availability
可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错误。
如果请求失败,能返回旧数据 ,但不能返回错误消息。

**P - Partition tolerance **
通常分布式系统的各个节点部署在不同的子网,这就是网络分区,不可避免的会出现由于网路的问题而导致节点之间的通信失败,此时仍可对外提供服务,这叫分区容错性。分区容错性是分布式系统具备的基本能力

CAP组合方式

在所有的分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。

AP(常见)
放弃一致性,追求分区容错性和可用性,这是分布式系统设计时的选择。

CP
放弃可用性,追求分区容错性和一致性,Zookeeper就是 强一致性,又比如跨行转账,一次转账请求要等待双方银行系统都完成整个事务才算完成。

CA
放弃分区容错性,不进行分区,不考虑网络不通或节点挂掉的情况,则可以实现一致性和可用性。那么就不是一个标准的分布式系统,常见的关系型数据库就满足CA。

BASE理论

理解强一致性和最终一致性

强一致性:指写操作后的读操作必须读到最新的数据状态;

最终一致性:允许在一段时间内节点数据不一致,但是经过一段时间每个节点的数据必须保存一致;

BASE理论介绍

BASE 是 Basically Avaliable (基本可用)、Soft State (软状态) 和 Eventually consistent (最终一致性) 的缩写。
BASE 理论是对CAP中AP的一个扩展,通过牺牲强一致性来获取可用性。当出现故障允许部分不可用,但要保证核心功能可用,允许数据在一段时间内不一致,但你最终达到一直状态。满足BASE理论的事务,称之为柔性事务

  • 基本可以:允许部分不可用,但要保证核心功能可用
  • 软状态:由于不要求强一致性,所以BASE允许系统中存在中间状态(软状态)
  • 最终一致性:允许在一段时间内节点数据不一致,但是经过一段时间每个节点的数据必须保存一致;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值