字节面试:聊聊 CAP 定理?哪些中间件是AP? 哪些是CP? 说说 为什么?

本文原文链接

45岁老架构 尼恩说在前面

在45岁老架构师 尼恩的读者交流群(100+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团、蚂蚁、得物的面试资格,遇到很多很重要的相关面试题:

  • 聊聊CAP 定理?
  • CAP不能同时被满足,为什么?
  • AP/CP不能兼顾?为什么?
  • 哪些中间件是AP? 哪些中间件 是CP? 说说为什么?

最近有小伙伴面试字节,都问到了这个面试题。 小伙伴没有系统的去梳理和总结,所以支支吾吾的说了几句,面试官不满意,面试挂了。

所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,让面试官爱到 “不能自已、口水直流”,然后实现”offer直提”。

当然,这道面试题,以及参考答案,也会收入咱们的 《尼恩Java面试宝典PDF》V175版本,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。

《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》的PDF,请到文末公号【技术自由圈】获取

1.背景介绍

数据一致性是分布式系统中的一个重要问题,它涉及到多个节点之间的数据同步和一致性。

数据一致性问题在分布式系统中具有重要的意义。

而 CAP定理是一个关于分布式系统的一致性模型。 CAP定理 是 分布式系统的 底层定理, 也是 面试的核心重点。

接下来, 尼恩带大家来 穿透 CAP定理,哪些中间件是AP,哪些中间件 是CP,让面试官 口水直流。

2.CAP定理

2.1 CAP 猜想/CAP证明/CAP定理

CAP 猜想

CAP 定理(CAP theorem)又被称作 布鲁尔定理 ,是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想。

CAP 证明

2002 年,麻省理工学院的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了布鲁尔猜想的证明,使之成为分布式计算领域公认的一个定理。

CAP 定理

CAP 该定理指出一个 分布式系统 最多只能同时满足一致性(Consistency)、**可用性(Availability)分区容错性(Partition tolerance)**这三项中的两项。

在这里插入图片描述

CAP定理的三个要素可以用来描述分布式系统的一致性和可用性。

三个要素包括:

  • 一致性(Consistency) C
  • 可用性(Availability) A
  • 分区容错性(Partition Tolerance) P

2.2 CAP定理 的三要素以及 三要素之间的 关系 :

CAP定理 的内容:一个分布式系统无法同时满足这三个条件,只能满足两个,意味着我们要抛弃其中的一项。

cap三个要素:

  • C:一致性是指所有节点 的数据是否一致,或者说,一份数据的多个分布式副本 是否一致
  • A: 可用性是 指系统在任何时刻都能提供服务
  • P :分区容错性是指系统在网络分区(/ 局部断网)的情况下, 仍然 能提供服务。
2.2.1 一致性(Consistency)

一致性是指所有节点 的数据是否一致,或者说,一份数据的多个分布式副本 是否一致。

注意, CAP里边的可用性 C, 强调是 任何时刻 一致, 指的是强一致性。

一般来说,在分布式系统中 的一致性可以分为两种类型:强一致性和弱一致性。

  • 强一致性要求在任何时刻,所有节点都能看到相同的数据。

  • 而弱一致性允许在某些情况下,部分节点可能看到不同的副本。

尼恩啰啰嗦嗦的说一下:CAP里边的 C 指的是 强一致性。

2.2.2 可用性(Availability)

可用性是指系统在任何时刻都能提供服务。

注意, CAP里边的可用性 A, 强调是 任何时刻 可用, 指的是 高可用,或者说 99.99%可用

一般来说, 在分布式系统中,可用性是一个重要的指标,它可以用来衡量系统的稳定性和可靠性。

可用性通常被定义为系统在一段时间内无法提供服务的概率,通常使用99.9%(即99.9%的时间内系统可用)来衡量。

尼恩啰啰嗦嗦的说一下:CAP里边的 A 指的是 高可用性, 比如 企业级软件的 4个9。

一般来说, 可用性 有个衡量 的标准——X个9,这个X是代表数字3~5, 具体如下表:

可用度A 9的个数 年内不可用时间(分钟) 适用产品
0.999 三个9 526分钟 个人电脑
0.9999 四个9 52.6分钟 企业级软件
0.99999 五个9 5.26分钟</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值