一、什么是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)。 |
|
|
强调对分布式系统的可用性和性能的追求,而不强制要求实现强一致性。 BASE理论的应用广泛,特别是在大规模分布式系统、云计算、NoSQL数据库等场景下。通过采用BASE原则,可以在追求高性能和可扩展性的同时,保证系统的基本可用性和最终一致性。 | 保证数据库事务的可靠性和一致性,它是传统关系型数据库的核心特性。 确保事务正确地执行,避免了数据丢失、不一致或冲突的问题。 ACID原则在大规模分布式系统中可能会面临性能和可扩展性的挑战。因此,在某些分布式场景下,人们更倾向于使用BASE理论,放松强一致性要求以追求更高的可用性和性能。 |