分布式系列:分布式系统之ACID和BASE理论

本文探讨了分布式系统中的ACID和BASE理论。ACID包括原子性、一致性、隔离性和持久性,用于保证事务特性。文章介绍了二阶段提交、三阶段提交和TCC协议,以及它们在确保一致性时的优缺点。而BASE理论则主张基本可用和最终一致性,适用于大流量场景下的分布式系统设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前我们在《分布式系统之聊聊CAP理论》文中介绍了分布式系统的CAP理论,在实际场景下,一般P是肯定存在的,因此分布式策略一般就是变成了CP和AP选择。那么ACID和BASE理论又是什么呢?

ACID由原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)组成。ACID理论是对事务特性的抽象和总结,一般可用理解为实现了ACID就实现了事务。分布式事务就是对某个操作要么所有节点都成功,要么失败。不允许存在部分成功、部分失败。常用的分布式事务协议有二阶段提交、三阶段提交协议和TCC协议。

二阶段提交协议

为了保证节点的一致性,二阶段协议(也叫2PC)引入了协调者来管理所有节点,并保证这些节点正确提交操作结果,若提交失败则放弃事务。具体分为:投票和提交两个过程。

投票为第一阶段,协调者会向事务的参与者发起执行操作的CanCommit请求并等待参与者响应,参与者收到请求后会执行请求的事务操作,记录日志信息但不提交。参与者执行成功会向协调者发送YES消息,不成功则发送NO消息,终止事务操作。当所有参与者回复了操作结果,则进入提交阶段,在提交阶段,协调者会根据结果发送DoCommit或Abort命令。

如果协调者收到全是YES,则向参与者发送DoCommit消息,参与者完成剩余的提交工作并向协调者回复HaveCommitted消息。

如果协调者收到包含NO的消息,则向所有参与者回复Abort消息。此时参与者会回滚之前的操作,然后向协调者回复HaveCommitted消息。

从上面过程可用看出,二阶段提交中协调者可能存在单点故障问题。此外,假如发生了局部网络异常,可能会造成只有部分节点提交事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值