介绍分布式事务之前,先说下事务(ACID)
- 原子性:事务中的所有操作要么全部完成,要么全部不完成
- 一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态
- 隔离性:事务允许多个并发事务同时对其数据进行读写和修改,但需要防止多个事务并发执行时由于交叉执行而导致数据的不一致
- 持久性:一旦事务被提交,对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
然后再来说说分布式事务
**分布式事务:**在分布式系统中,一个操作需要跨越多个服务,并且这些服务的业务数据是紧密关联的,需要实现数据的一致性。并不代表着一个操作多个服务协同就一定要有事务
分布式相关理论
-
CAP定理:
-
分区容错性:分布式系统集群中, 一个机器坏掉不应该影响其他机器
-
可用性:一个请求, 必须返回一个响应
-
一致性:一定能读取到最新的数据
- 强一致性:要求更新过的数据能被后续的访问都能看到
- 弱一致性:能容忍后续的部分或者全部访问不到
- 最终一致性:经过一段时间后要求能访问到更新后的数据
-
BASE理论是基于CAP定理逐步演化而来的
- 基本可用: 允许服务降级或者允许响应时间受到一定损失
- 软状态:允许同步数据的时候出现一定的延迟
- 最终一致性:经过一段时间的同步数据之后,最终能够达到一个一致的状态