【布式事务】分布式事务和分布式指导理论简介

文章目录

1.分布式事务概念

基础概念:事务的4大要求 ACID

  1. 原子性(Atomicity):确保事务作为一个完整的单元执行。如果事务中的任何操作失败,整个事务都会回滚,就像它从未发生过一样。
  2. 一致性(Consistency):保证事务将数据库从一个有效状态转移到另一个有效状态。这意味着事务完成后,数据库的完整性规则必须得到满足。
  3. 隔离性(Isolation):防止并发执行的事务相互干扰。每个事务都独立于其他事务运行,提供了不同级别的隔离,如读已提交和可重复读等。
  4. 持久性(Durability):一旦事务被提交,它对数据库所做的更改就永久保存下来,即使系统发生故障,这些更改也不会丢失。

事务

  • 本地事务:本地事务,也称为数据库事务或传统事务,是相对于分布式事务而言的,它是指在单个数据库中进行的一系列操作,借助数据库来满足事务的 4 大要求(ACID)。在早期的单体应用中,因为应用和数据库通常位于同一个服务器中,所以基于关系型数据库的事务被称为本地事务。
  • 分布式事务:分布式事务的概念来源于对传统本地事务概念在分布式系统环境中的延伸和拓展。具体来说,分布式事务是指在分布式系统中,由分布在不同节点上的多个服务共同参与的事务。这些服务可能属于不同的应用,它们通过网络进行远程协作来完成一系列操作,这些操作需要保持一致性和原子性。例如,用户注册送积分、创建订单减库存、银行转账等操作都可能涉及到分布式事务。

2.分布式系统设计的指导理论

分布式系统设计的指导理论主要是CAP定理和BASE理论。

分布式系统是由多个子业务组成的,这些子业务分布在不同的服务器节点上,共同工作以完成系统的业务目标。分布式系统具有分布性、对等性、并发性等特点,同时也面临着缺乏全局时钟、故障总数增加等问题。在这样的背景下,为了确保分布式系统的高可用性和可扩展性,设计师们提出了 CAP 定理和 BASE 理论。

CAP 定理

CAP定理指出,在分布式系统中,在满足必要的 分区容错性 前提下,最多只能再满足一致性、可用性中的一项

CAP定理是分布式系统设计中的基本理论,由Eric Brewer在2000年提出,并由Seth Gilbert和Nancy Lynch在2002年证明。该定理的核心观点是在一个分布式系统中,不可能同时满足以下三个特性:

  • 一致性(Consistency):这意味着系统的所有节点在同一时间看到的数据是一致的。一旦数据被更新,所有的用户都应该能看到这个最新的数据状态。
  • 可用性(Availability):这指的是系统提供的服务必须始终可用,即使在系统的部分组件出现故障的情况下,系统仍能对外提供服务。
  • 分区容错性(Partition tolerance):分区容错性指的是系统能够处理网络分区的问题,即使在系统的部分节点无法与其他节点通信的情况下,系统仍然能够继续运行。

BASE 理论

BASE理论是一种分布式系统设计理念,强调基本可用性、软状态和最终一致性

BASE理论由eBay的架构师Dan Pritchett在2008年提出,并在ACM上发表。它是对CAP定理中一致性(C)和可用性(A)权衡的结果,本质上是对CAP中AP方案的一个补充。BASE代表的是:

  • 基本可用(Basically Available):这是一种折中的概念,介于完全可用和完全不可用之间。在互联网系统中,基本可用意味着系统大部分时间是可用的,但可能会在某些情况下短暂不可用。
  • 软状态(Soft state):指的是系统中的状态不需要实时一致,允许存在一定的延迟或误差。这意味着系统的某些部分可能会暂时处于不一致的状态,但随着时间的推移,这些状态会通过一定的机制达到一致。
  • 最终一致性(Eventually consistent):这是对一致性要求的一种放宽。在分布式系统中,不强调实时一致性,而是允许数据在一定时间内达到最终一致的状态。这样可以提高系统的可用性和性能。

总的来说,BASE理论的核心思想是在分布式系统中,可以适当放宽强一致性的要求,追求更高的可用性和性能,通过一定的机制,最终实现一致性。

相关推荐
孟意昶17 小时前
Doris专题31-SQL手册-基础元素
大数据·数据库·数据仓库·分布式·sql·知识图谱·doris
2603_9547083119 小时前
交直流混合微电网架构:拓扑优化与功率交互设计
人工智能·分布式·物联网·架构·系统架构·能源
juniperhan21 小时前
Flink 系列第12篇:Flink 维表关联详解
大数据·数据仓库·分布式·flink
Evand J1 天前
【雷达跟踪代码介绍】基于matlab卡尔曼滤波器雷达多目标跟踪(双雷达 多目标 分布式融合)
分布式·matlab·目标跟踪·多目标跟踪·雷达跟踪
zz0723201 天前
Seata ——微服务分布式事务
分布式·微服务·架构·seata
小江的记录本1 天前
【分布式】分布式系统核心知识体系:CAP定理、BASE理论与核心挑战
java·前端·网络·分布式·后端·python·安全
Roselind_Yi1 天前
云计算实验实操|Hadoop伪分布式部署+MapReduce编程实践(超详细图文版)
大数据·hadoop·经验分享·笔记·分布式·数据挖掘·云计算
是垚不是土1 天前
Kafka 故障排查周期长?试试 Kdoctor
linux·运维·分布式·ai·kafka·运维开发
小江的记录本1 天前
【分布式】分布式一致性协议:2PC/3PC、Paxos、Raft、ZAB 核心原理、区别(2026必考Raft)
java·前端·分布式·后端·安全·面试·系统架构
小江的记录本1 天前
【分布式】分布式核心组件——分布式锁:Redis/ZooKeeper/etcd 实现方案(附全方位对比表)、优缺点、Redlock、时钟回拨问题
java·网络·redis·分布式·后端·zookeeper·架构