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

秋招Day19 - 分布式 - 理论

说说CAP原则?

在一个分布式系统中,一致性,可用性、分区容错性只能同时满足两个。

Partition tolerance(分区容错性)分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性 / 可用性的服务,除非整个网络环境都发生了故障

为什么CAP不可兼得呢?

对于分布式系统,网络分区是必然存在的,因为分布式系统都是跨网络分区部署的,所以分区容错性必然要满足。

然而在分区容错性满足的前提下,一致性和可用性只能二选一。

  • 如果满足一致性,那么必须获取最新数据,当网络分区故障发生时,就可能会发生拒绝服务的情况
  • 如果满足可用性,那么就不能拒绝服务,当网络分区故障发生时,就无法返回最新数据,只能返回旧数据

CAP对应的模型和应用?

CA without P:分布式系统中理论上P是必须满足的,但是这里指的是各子系统各自满足CA。集群数据库、xFS文件系统

CP without A:放弃 A(可用),相当于每个请求都需要在 Server 之间强一致,而 P(分区)会导致同步时间无限延长,如此 CP 也是可以保证的。很多传统的数据库分布式事务都属于这种模式。

CP 模型的常见应用:

  • 分布式数据库
  • 分布式锁

AP withou C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的 NoSQL 都属于此类。

AP 模型常见应用:

  • Web 缓存
  • DNS

BASE理论了解吗?

BASE(Basically Available、Soft state、Eventual consistency)是基于 CAP 理论逐步演化而来的,核心思想是即便不能达到强一致性(Strong consistency),也可以根据应用特点采用适当的方式来达到最终一致性(Eventual consistency)的效果。

BASE 的主要含义:

  • Basically Available(基本可用)

什么是基本可用呢?假设系统出现了不可预知的故障,但还是能用,只是相比较正常的系统而言,可能会有响应时间上的损失,或者功能上的降级。

  • Soft State(软状态)

什么是硬状态呢?要求多个节点的数据副本都是一致的,这是一种“硬状态”。

软状态也称为弱状态,相比较硬状态而言,允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

  • Eventually Consistent(最终一致性)

上面说了软状态,但是不应该一直都是软状态。在一定时间后,应该到达一个最终的状态,保证所有副本保持数据一致性,从而达到数据的最终一致性。这个时间取决于网络延时、系统负载、数据复制方案设计等等因素。

http://www.lryc.cn/news/599634.html

相关文章:

  • 【论文阅读】-《GenAttack: Practical Black-box Attacks with Gradient-Free Optimization》
  • 在 Azure 中配置 SMS 与 OTP
  • 高效算法的实现与优化是计算机科学的核心,直接决定了程序的性能和资源消耗。下面针对排序算法、搜索算法和动态规划,深入探讨其高效实现与关键优化技术。
  • 如何用js自动触发deepseek输入并发送,不调用api的情况
  • Java 流(Stream)分类、用途与性能分析
  • 【Web】DASCTF 2025上半年赛 wp
  • 非参数密度函数估计(1)
  • 职坐标解析:人工智能产业现状
  • C#(数据类型)
  • Swagger详解API 文档
  • C#(基本语法)
  • C语言中奇技淫巧04-仅对指定函数启用编译优化
  • 恋爱时间倒计时网页设计与实现方案
  • C#观察者模式示例代码
  • Idefics2:构建视觉-语言模型时,什么是重要的
  • ‌通向数字孪生的大门:掌握RVT到3DTiles的关键转换流程
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-评论用户时间占比环形饼状图实现
  • 经验累积分布函数VS累积分布函数
  • Vue nextTick
  • 基于多模型AI训练与验证系统开发
  • 移动端设备能部署的llm
  • MC_GearInPos电子齿轮
  • Pytest tmp_path 实战指南:测试中的临时目录管理
  • 基于单片机的数字电压表设计
  • MyBatis-Plus 指南
  • 光耦合器:新能源世界的“绿色信使“
  • 全面解析MySQL(3)——CRUD进阶与数据库约束:构建健壮数据系统的基石
  • Krpano 工具如何调节全景图片切割之后的分辨率
  • 代码随想录算法训练营第三十一天
  • 卡尔曼滤波器噪声方差设置对性能影响的仿真研究