分布式事务和一致性

分布式事务是什么?

分布式事务是指在分布式系统中涉及到多个数据库多个应用程序之间 的事务处理,这些数据库或应用程序可能

布在不同的物理节点上,甚至可能位于不同的地理位置,在分布式事务中,需要确保所有参与者的事务操作都能

保持一致性,即所有参与者的事务要么全部提交成功要么全部回滚

举个例子,假设一个电商系统,用户下单后需要扣减库存、扣减账户余额、生成订单等操作。在单机环境下,可

将这些操作放在同一个事务中,保证原子性、一致性和持久性。但在分布式环境下,可能存在多个服务(如库存

务、账户服务、订单服务)分布在不同的物理节点上,此时需要确保所有服务操作的事务都能够同步进行,避免

现数据不一致的情况。

为了解决分布式事务的问题,出现了一些分布式事务解决方案,如 XA 协议、TCC 事务、最大努力通知等。这些解决方案的实现方式各不相同,但都需要考虑如何确保所有参与者的事务操作能够保持一致性,以及如何处理可能出现的异常情况。

分布式系统的一致性有哪些?

所谓一致性,是指数据在多个副本之间是否能够保持一致的特性。在聊一致性的时候,其实要搞清楚一致性模型。

分布式系统中的一致性模型是一组管理分布式系统行为的规则。它决定了在分布式系统中如何访问和更新数据,以及如何将这些更新提供给客户端。面对网络延迟和局部故障等分布式计算难题,分布式系统的一致性模型对保证系统的一致性和可靠性起着关键作用。在分布式系统中有多种一致性模型可用,每个模型都有其优点和缺点,选择模型取决于系统的具体要求。

主要有三种,强一致性,弱一致性,最终一致性

强一致性模型(Strong Consistency):

在强一致性模型下,系统保证每个读操作都将返回最近的写操作的结果,即任何时间点,客户端都将看到相同的数据视图。这包括如下子模型:

  • 线性一致性(Linearizability):线性一致性是一种最强的一致性模型,它强调在分布式系统中的任何时间点,读操作都应该返回最近的写操作的结果。
  • 顺序一致性(Sequential Consistency):要求保证操作的顺序性,并不要求实际时间上的顺序保持一致
  • 严格可串行性(Strict Serializability)

强一致性模型通常牺牲了可用性来实现数据一致性

弱一致性模型(WeakConsistency):

弱一致性模型放宽了一致性保证,它允许在不同节点之间的数据访问之间存在一定程度的不一致性,以换取更高的性能和可用性。这包括如下子模型:

  • 因果一致性(Causal Consistency)
  • 会话一致性(Session Consistency)
  • 单调一致性(Monotonic Consistency)

弱一致性模型通常更注重可用性,允许一定程度的数据不一致性。

最终一致性模型(Eventua Consistency):

最终一致性模型是一种最大程度放宽了一致性要求的模型。它允许在系统发生分区或网络故障后,经过一段时间,系统将最终达到一致状态。这个模型在某些情况下提供了很高的可用性 ,但在一段时间 内可能会出现数据不一致的情况

相关推荐
国科安芯18 小时前
低轨卫星姿态与轨道控制系统中高可靠MCU的选型研究——基于AS32S601的抗辐照性能试验数据分析
分布式·科技·单片机·嵌入式硬件·系统架构
谢白羽20 小时前
SGLang源码剖析-2-sglang双层体系架构全景
分布式·架构·llm·vllm·sglang
霸道流氓气质1 天前
分布式锁 — 概念、原理与实践
分布式
杰佛史彦明 本王是暴君1 天前
分布式日志收集系统: Facebook Scribe
分布式·facebook
JHC0000001 天前
基于 DrissionPage 与 Xvfb 的分布式无头爬虫架构
分布式·kafka
梦云莓铃 脚后跟法1 天前
结合领域驱动设计的SOA分布式软件架构
分布式
zcmodeltech1 天前
火电厂模型多设备时序控制系统设计:基于STM32与Modbus RTU的燃煤-燃机全流程联动方案
分布式·stm32·单片机·嵌入式硬件·物联网
ACP广源盛139246256732 天前
DeepSeek‑V4‑Flash 公测@ACP#昇腾 950 国产算力组合落地,国产 PCIe 交换芯片 IX9104 有哪些硬件机会
大数据·数据库·人工智能·分布式·单片机·嵌入式硬件·microsoft
玉鸯2 天前
多 Agent 并行时如何保证状态一致性?
分布式·python·agent
CodeHackerBhx2 天前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式