11、分布式系统的一致性、可用性与容错性

分布式系统的一致性、可用性与容错性

1. 最终一致性概述

在分布式系统中,一致性是一个关键概念,主要分为强一致性和最终一致性。
- 强一致性 :在提供强一致性的系统中,每次写入都会同步传播。这意味着所有读取操作总能看到最新的写入结果,不过可能会导致更高的延迟或更低的可用性。关系型数据库管理系统(RDBMS)基于ACID保证提供这种一致性,适用于需要事务处理的系统。
- 最终一致性 :与之相对,最终一致性系统仅保证写入操作后,读取操作最终会看到数据的变化,通常“最终”指的是在几毫秒内。这是因为此类系统中的数据复制是异步的。这种系统通常采用BASE语义,常见于NoSQL数据库。

为了实现异步和最终一致性,系统需要解决状态冲突问题。常见的方法是在实例间交换更新,并选择首次或最后一次写入作为有效写入。下面介绍两种有助于实现最终一致性的模式。

2. Sagas和补偿事务

Saga模式适用于分布式事务处理。在微服务时代之前,若只有一个主机和一个数据库,可依靠数据库引擎处理事务;若一个主机上有多个数据库,则可使用两阶段提交(2PC)。2PC有一个协调器,先通知所有数据库准备,待所有数据库报告准备就绪后,再通知它们提交事务。

但在微服务架构中,每个微服务可能都有自己的数据库,分布在整个基础设施中,此时简单事务和2PC不再适用。可以采用Saga模式,下面通过一个在线仓库的例子来说明。

假设要创建一个在线仓库,跟踪库存并支持信用卡支付。处理订单需要三个关键服务:订单处理服务、库存预留服务和信用卡收费服务。Saga模式有两种实现方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值