分布式系统之 CAP 理论和 Base 理论

内容整理自 邴越分布式技术原理与实战45讲『一块钱上车传送门』。持续学习,遇见更好的自己!

一、 分布式系统

1. 集中式系统的性能问题

毕竟单台机器的性能有限,集中式架构的性能问题主要包含:

  • 可用性不高,容易出现点单故障
  • 可扩展性不高,水平扩展系统容量的难度较大
  • 可维护性低,业务系统间的耦合程度大
  • 成本高,高配置机器成本和低配置机器的成本并不是线性关系
2. 分布式系统的好处

分布式系统的核心是 可扩展性,通过多台机器的合作来完成单台机器无法完成的任务。好处是:

  • 成本低,可以由多台一般配置的机器协同合作,来完成需要高配置机器才能完成的工作。
  • 可用性高,多台机器同时出故障的几率要小于单台机器出故障的几率。
  • 可扩展性高,理想情况下,只需要水平增加机器就可以线性增加系统容量
3. 分布式系统常见问题

由于分布式系统由多台机器协同合作来提供服务,虽然避免了 单点故障,提高了可用性,但也存在一些问题:

  • 多台机器间的通信:
    • 时序性
    • 网络可用性
  • 多台机器间的数据:
    • 状态的一致性
    • 同步的实时性

二、 CAP理论

1. 结论

CAP 理论指出,一个分布式系统只能同时满足以下两点:

  • Consistency 一致性:所有机器同时看到相同的数据
  • Availability 可用性:任何时候,读写都是成功的
  • Partition Tolerance 分区容忍性:部分机器通信延迟、失败或者故障时,系统还可以继续提供一致、可用的服务
2. 结论反证

假设能够同时保证 CAP,因为 P 的存在,则一定存在部分机器间无法通信的情况,那么则一定无法保证所有机器之间的一致性。

3. CP 和 AP

由于 P 是一定的,分布式系统可分为:

  • CP:牺牲一些可用性,来保证更好的一致性。如:ZooKeeper,用来解决分布式系统中多台机器的协调和一致性问题。
  • AP:牺牲一些一致性,来保证更好的可用性。如:Eureka,用来在微服务系统中提供服务的注册和查询功能。

三、 Base 理论

1. 一致性分类

一致性分类:

  • 强一致性:多台机器的状态,一致且实时。
  • 弱一致性:多台机器的状态,在用户能够接受的时间范围内,能达到 最终一致。细分:
    • 因果一致性,如:会话一致性
    • 单调读一致性
    • 单调写一致性
2. 因果一致性举例

因果一致性是指,有因果关系的操作在顺序上能够得到保证。即:机器 A 完成了对某数据的更新,然后告知了机器 B,机器 B 必须能够读取到机器 A 更新后的数据,如果机器 B 也要更新那个数据,必须在机器 A 的更新结果上进行更新。

比如微信:你发了一个朋友圈,你的朋友进行了评论,评论动作由 A 机器来完成。此后,你又对朋友的评论进行了回复,回复动作由 B 机器来完成。这时的 评论回复 就有因果关系,执行顺序必须得到保证。

3. 会话一致性举例

会话一致性是指,在一个会话中,必须 能够读到刚才写入的数据。比如:分布式系统中的 session 一致性问题。

4. Base 理论

Base 理论的核心思想是 最终一致性,简单概述就是:放弃强一致性,追求分区容错性和可用性。具体是:

  • Basically Available,基本可用。

基本可用是指,不追求 任何时候读写都是成功的,而是 系统能够基本运行,一直提供服务。例如:在一些秒杀系统中,当最大 QPS 超过系统容量时,返回的 稍后再试,就是基本可用的一种表现。

  • Soft State,软状态。

对比数据库中的 ACID 模型,要求操作的原子性,结果的一致性,就是一种 硬状态。而 软状态 是指,允许系统中的数据存在中间状态,并且不影响系统的整体可用性。比如:数据库集群中的同步延迟问题,我们可以接受这个延迟,多个机器间的数据短时间内的不一致,就是一种 软状态

  • Eventually Consistent,最终一致。

最终一致 是指,数据不能一直是 软状态,需要在一个能接受的时间范围内,能够达到一致性。还以数据库集群为例,我们允许同步延迟,但还是要能够 在一定时间后,集群达到一致,而这个 迟到的一致 就称为 最终一致

5. Base 和 CAP 的关系

Base 是在 CAP 的基础上演化而来的。CAP 指出了 一致性、可用性、分区容错性,这三者只能选择两者,Base 是一种 AP 方案,即:在分区容错性一定存在的前提下,通过将强一致性退化为最终一致性的牺牲,来最求更好的可用性

很多分布式系统都在选择 Base 理论作为架构方式,比如:NoSQL 和 微服务,强调通过服务降级等方式保证基本可用,最求更高的可扩展性,从而保证更好的可用性。而某些对数据有强一致性要求的应用,如金融系统,则应该选择 CP 思路的架构方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容