当前位置: 首页 > article >正文

简单说一下CAP理论和Base理论

CAP理论

什么是CAP

一致性

可用性

分区容错性:系统如果不能再时限内达成数据一致性,就说明发生了分区的情况

然后当前操作在C和A之间做出选择

例如我的网络出现问题了,但是我们的系统不能因为网络问题就直接崩溃

只要我们的分布式系统没有崩溃,我们就能容忍这种问题

我们是不能同时满足CAP三种属性的,只能同时满足其中两种


理解CAP理论中的C

为了保证P,我们有可能舍去A或者舍去C

也就是为了保证我们的这个分布式系统是可用的,我们要不舍去A要不舍去C


理解为啥一致性(C)和可用性(A)不能同时存在

一写的情况保证我们的可用性

三写的情况保证我们的一致性

分布式情况下P是一定存在的

一旦出现了网络分区,那么一致性和可用性我们就要抛弃一个

这就意味着我们的系统一般是一个AP系统或者是一个CP系统

一般来说NOSQL数据库是一个AP系统

分布式关系型数据库一般是CP系统(虽然达不到100%的可用性,但一般支持高可用性)


什么是RPO和RTO

RPO:数据库发生灾害后会丢失多长时间

RTO:数据库在灾难发生后整个系统恢复正常所需要的时间


辩证看待CAP理论

不是说选了A就必须抛弃C

而是选了一个,然后对另一个进行降级


总结

因为P在分布式系统中是肯定存在的

而CAP三者在理论中是不能100%满足的

所以我们要在A和C之间选一个进行降级处理


Base理论

BASE 理论本质上是对 CAP 的延伸和补充

更具体地说,是对 CAP 中 AP 方案的一个补充

为什么这样说呢?

CAP 理论我们也说过:

如果系统没有发生 “分区” 的话,节点间的网络连接通信正常的话,也就不存在 P 了。这个时候,我们就可以同时保证 C 和 A 了。因此,如果系统发生 “分区”,我们要考虑选择 CP 还是 AP。

如果系统没有发生 “分区” 的话,我们要思考如何保证 CA。
 

因此,AP 方案只是在系统发生分区的时候放弃一致性,而不是永远放弃一致性

在分区故障恢复后,系统应该达到最终一致性。这一点其实就是 BASE 理论延伸的地方

我们只是牺牲部分一致性,而不是永远放弃一致性


Base理论是

基本可用

软状态

最终一致性

牺牲一致性,仍然保证系统整体的“主要可用”

Base理论是对CAP中的一致性C和可用性A权衡的结果

即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性


http://www.kler.cn/a/534689.html

相关文章:

  • AI大模型:本地部署deepseek
  • PyTorch快速入门
  • hot100(7)
  • 【NLP 20、Encoding编码 和 Embedding嵌入】
  • 拍照对比,X70 PRO与X90 PRO+的细节差异
  • 小书包:让阅读更美的二次开发之作
  • 办理CE-notify-body资质流程详细讲解
  • 细说机器学习数学优化之梯度下降
  • Pytorch与大模型有什么关系
  • 当孤独遇上AI:“爱陪伴”如何治愈孤独缓解压力?
  • 如何用hooks实现redux?
  • Java面试题(11) 整理Java面试题及参考答案
  • hot100-day1
  • InDraw绘制的结构式,一键复制到Word里
  • aliyun 的 ip 设置方法
  • Tomcat 的几种部署方式
  • Unity UI Default Shader分析
  • CSS盒模型详解:从零开始理解margin、border、padding
  • vue3+ts 引入 json-editor-vue3
  • 什么是三层交换技术?与二层有什么区别?
  • 自定义线程池应用加源码分析
  • 2.5学习总结(补)
  • 运维作业四
  • 使用DeepSeek搭建个人专属知识库
  • 韦东山imx6ull_pro开发板启动文件分析
  • 在本地顺利的部署一个al模型从零开始 windows