分布式学习二:CAP定理

简介: 分布式学习二:CAP定理

前言

我们通过微服务形式进行实现整个系统,每个服务都可以有副本,相互之间可以通信,并发能力强

微服务分布式部署涉及到了3个需求:

C(Consistence)实时一致性

在分布式系统的每个服务相互之间的数据存储,需要实时一致性,否则无法同时对外提供服务

A(Availability)

可用性 在集群中每个节点读写必须在第一时间响应,不会受到其他服务的影响

P(Network partitioning)

分区容错性  分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务

CAP定理

一个分布式系统不可能同时满足一致性,可用性和分区容错性这三个基本需求,最多只能同时满足其中的2个。

网络异常,图片无法展示
|

CP

CP指的是在分布式部署中,抛弃一定的可用性,保证数据的最终一致性

例如在分布式系统中,

订单系统新增订单+用户系统扣除余额   如果用户系统无法连接,就会导致只新增了订单,没有扣除金额,为了保证数据的一致性,只能抛弃订单系统的可用性,直接将此次请求返回失败

image.png

在一些需要保证数据一致性的分布式系统中,将无法保证服务的可用性 (CAP定理)

AP

AP是指在分布式系统中,保证服务的可用性,抛弃一定的数据强一致性

例如在非数据强一致性的场景(废话)

分布式文章系统,用于展示文章数据的,假设需要更新一条文章数据,只需要通知其他节点,就算节点通知失败,节点B也可以返回旧数据进行响应,保证可用性

image.png

AC


AC在CAP系统中,严格意义上来说是不存在的,由于丢弃了P(分区),意味着分布式CAP定理中的"分布式" 已经抛弃了

AC表示在一个系统中(非分布式) 严格保证可用性和数据一致性,因为没有了分区,导致非分布式部署,讨论这个没有意义

非严格CAP

在上面我们了解到了分布式CAP定理中CP,AP以及AC的严格约束情况,而事实上

CAP定理只是表明无法严格实现"CAP" 并不代表直接抛弃其中的一个进行构建系统

这句话可能很难理解,其实就是:

在CP中,会抛弃可用性,保证强一致性,但是在某一些场景中,会增加可用性,削弱强一致性,转为"强可用+弱一致性",

例如mysql主从服务器中,通过binlog同步和读写分离模式,保证了读服务器数据通过主服务器进行更新数据提供读服务,但是读服务器不能进行写操作,这就是一个 弱可用+最终一致性 的场景

image.png

CP和AP都有一个着重点,可以根据实际业务额外的弱化另一个部分,实现弱CAP

非严格CAP衍生

为了实现弱CAP,着重C或者A,根据业务场景的不同有着不同的方案

例如  BASE理论:  Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)

例如 分布式共识算法  在节点出现错误后,通过选举投票等方法重新决定新的处理节点,在节点恢复后同步数据

目录
相关文章
|
5月前
|
机器学习/深度学习 分布式计算 算法
联邦学习是保障数据隐私的分布式机器学习方法
【6月更文挑战第13天】联邦学习是保障数据隐私的分布式机器学习方法,它在不暴露数据的情况下,通过在各设备上本地训练并由中心服务器协调,实现全局模型构建。联邦学习的优势在于保护隐私、提高训练效率和增强模型泛化。已应用于医疗、金融和物联网等领域。未来趋势包括更高效的数据隐私保护、提升可解释性和可靠性,以及与其他技术融合,有望在更多场景发挥潜力,推动机器学习发展。
119 4
|
5月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
227 0
|
2月前
|
机器学习/深度学习 算法 自动驾驶
深度学习之分布式智能体学习
基于深度学习的分布式智能体学习是一种针对多智能体系统的机器学习方法,旨在通过多个智能体协作、分布式决策和学习来解决复杂任务。这种方法特别适用于具有大规模数据、分散计算资源、或需要智能体彼此交互的应用场景。
146 4
|
1月前
|
缓存 Java 数据库
JAVA分布式CAP原则
JAVA分布式CAP原则
55 0
|
4月前
|
算法 前端开发
|
3月前
|
存储 NoSQL 关系型数据库
(二)漫谈分布式之理论篇:用刁钻的手法掰正你那学歪的CAP与BASE理论!
大多数讲分布式的资料、课程,虽然在一开始就会先讲述CAP理论,但大家仔细想想,你在做分布式项目时,落地过这个基础理论吗?相信包括我在内,以及90%以上的开发者,没有,至于为何,本文来从不一样的角度好好唠唠CAP,以及另一个著名的BASE理论~
|
6月前
|
并行计算 算法 物联网
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
|
4月前
|
缓存 搜索推荐 Java
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
56 0
|
5月前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
105 0
|
6月前
|
消息中间件 缓存 算法
从ACID到BASE:分布式系统CAP理论深度解析
**CAP理论**是分布式系统设计的基础,指出一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)无法兼得。一致性确保所有节点数据相同,如ACID原则;可用性保证系统始终响应用户请求,常见优化包括BASE理论和多级缓存;分区容忍性则确保网络分区时仍能服务。设计时需根据业务需求权衡这三者。
123 4

热门文章

最新文章