分布式系统设计的2个原则原理

文章介绍了分布式系统中的CPA原则,包括一致性、可用性和分区容忍性,并指出三者无法兼得。然后阐述了BASE理论,作为ACID原则的对立面,它强调在大规模分布式环境中,系统可以接受基本可用性、软状态和最终一致性,以换取更高的性能和可扩展性。

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

一、什么是CPA

是一个设计和实现分布式系统的基本原则,是一个重要指导思想,

描述在一个分布式系统中的三个目标:

a.一致性(consistency):所有副本数据在任何时间节点都是一致的《技术手段:分布式事务、强一致性...》;

b.可用性(availability):对于请求始终有响应, 无论时成功的还是失败的《技术手段:冗余备份、容错机制、负载均衡...》;

c.分区容忍性(partition Tolerance):在节点间有通讯中断的情况,任然可以工作 处理请求。

ps:需要注意的是  这三个目标不能同时兼顾 最多实现两个

总结:正常运行时追求一致性和可用性,在网络分区发生时更关注可用性和分区容错性。

二、什么是BASE理论

在分布式中 相对于ACID原则 提出的一种理论

 BASE理论ACID原则

BASE是指三个原则。

基本可用(Basically Available)

软状态(Soft State)

最终一致性(Eventual Consistency)

ACID原则是指在数据库管理系统(DBMS)中,保证事务的可靠性和一致性的四个基本特性。

原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)。

  1. 基本可用(Basically Available)系统在面对异常情况或部分故障时仍然可以保持基本的可用性,即尽可能地响应用户的请求。基本可用性要求系统能够在一定程度上容忍部分故障,而不至于完全不可用。

  2. 软状态(Soft State)系统中的状态可能会随着时间的推移而改变,这种状态变化可以是中间过程的结果,并且不需要实时达到全局一致。软状态允许系统在不同节点或组件之间存在短暂的数据不一致,但最终会达到一致的状态。

  3. 最终一致性(Eventual Consistency)最终一致性指的是系统中的所有副本经过一段时间后,将达到一致的状态。分布式系统中的数据复制和传播需要时间,因此不同节点之间的数据一致性可能会有一定的延迟。最终一致性放宽了对实时一致性的要求,而是通过异步的方式最终将数据状态调和为一致。

  1. 原子性(Atomicity):原子性确保一个事务被视为一个不可分割的操作单元,要么全部执行成功,要么全部回滚失败。如果一个事务中的任何一部分失败,系统将撤销整个事务的执行,恢复到最初的状态。

  2. 一致性(Consistency):一致性要求事务在执行前后,数据库从一个一致的状态转换到另一个一致的状态。这意味着事务必须遵守预定义的数据完整性和业务规则,以保持数据的正确性。

  3. 隔离性(Isolation):隔离性确保并发执行的多个事务相互之间不会影响彼此,每个事务都感觉像是在独立执行。隔离性通过锁定和并发控制机制来避免事务之间产生干扰和冲突。

  4. 持久性(Durability):持久性确保一旦事务提交,其所做的更改将永久保存在数据库中,即使在系统发生故障或重启后也是如此。系统通过将事务日志持久化到非易失性存储介质上来实现持久性。

强调对分布式系统的可用性和性能的追求,而不强制要求实现强一致性。

BASE理论的应用广泛,特别是在大规模分布式系统、云计算、NoSQL数据库等场景下。通过采用BASE原则,可以在追求高性能和可扩展性的同时,保证系统的基本可用性和最终一致性。

保证数据库事务的可靠性和一致性,它是传统关系型数据库的核心特性。

确保事务正确地执行,避免了数据丢失、不一致或冲突的问题。

ACID原则在大规模分布式系统中可能会面临性能和可扩展性的挑战。因此,在某些分布式场景下,人们更倾向于使用BASE理论,放松强一致性要求以追求更高的可用性和性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值