CAP定理与三元悖论

发布者: qingtian , 发布时间: 2021-03-14, 阅读量: 0 人次

前言

作为一名后端开发者,想必大家应该都听说过分布式系统中的经典定理:CAP定理(又被称作布鲁尔定理)。我今天不仅会简单分享一下CAP定理,除此之外,我还会顺带分享一个固定汇率制下使用货币政策的经典分析,即:三元悖论(也称蒙代尔-弗莱明模型)。如果你对他们不熟悉的话也没关系,我会在本篇博文中具体介绍。

话不多说,下面就随我娓娓道来其中的奥秘吧~

CAP定理

在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency) (等同于所有节点访问同一份最新的数据副本)
  • 可用性(Availability)(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)
  • 分区容错性(Partition tolerance)(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。)

根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。

这个定理起源于加州大学柏克莱分校的计算机科学家埃里克·布鲁尔在2000年的分布式计算原理研讨会(PODC)上提出的一个猜想。在2002年,麻省理工学院的赛斯·吉尔伯特和南希·林奇发表了布鲁尔猜想的证明,使之成为一个定理。

吉尔伯特和林奇证明的CAP定理比布鲁尔设想的某种程度上更加狭义。定理讨论了在两个互相矛盾的请求到达彼此连接不通的两个不同的分布式节点的时候的处理方案。

三元悖论

三元悖论,也称三难选择(The Impossible Trinity)。

蒙代尔(1963)提出了著名的M-F模型,为后来“三元悖论”理论的提出奠定了重要基础,后由美国经济学家保罗·克鲁格曼就开放经济下的政策选择问题所提出的。

其含义是:在开放经济条件下,本国货币政策的独立性、汇率的稳定性、资本的完全流动性不能同时实现,最多只能同时满足两个目标,而放弃另外一个目标。

  • 资本自由进出(Capital mobility
  • 固定汇率(Exchange rate
  • 独立自主的货币政策(Monetary policy

以上三者,一国只能三选其二,而不可能三者兼得。

资本自由进出且固定汇率

在资本自由进出及固定汇率之下,政府无法固定货币供给,也不能固定利率,于是资本的流动将使利率趋向于国际利率水平,失去货币政策自主性。

像是香港允许资本自由进出,且港币在1983年10月17日采联系汇率制度钉住美元,故香港的货币政策完全由美国主导。

资本自由进出且自主的货币政策

在资本自由进出且自主的货币政策之下,利率变化造成的资本流动会被汇率的反向变动所抵销,使资本的进出不影响货币供给,因此国家可以拥有货币政策自主性,却不能固定汇率。

大部分发达经济体多采用此种制度,包括美元、欧元及日圆等。

自主的货币政策与固定汇率

在上面两个情况皆为资本流动造成双率只能择一控管,于是在管制资本流动后,便可控制双率。

如亚洲金融危机后采金融锁国之马来西亚。

后记

在我们进行分布式系统开发过程中,CAP定理具有非常大的作用。因为它的客观存在,让我们不得不在系统的一致性,可用性,分区容错性上进行3选2的抉择。这种抉择往往是根据我们所需要开发的分布式系统的业务特性决定的,选择需要重点关注的2个点,而在一个相对不那么重要的点上做适当的放弃,以保证系统架构适应业务发展的需要。

任何做分布式系统架构的人员,都需要深入理解CAP定理,并熟悉运用,为架构决策提供依据。

而三元悖论为我们更好的理解每个国家开放经济下的政策提供了依据。那些从前存在于各类经济新闻中的内容,在我们了解了“三元悖论”后会得到关于国家对当前经济政策所关注点更深的理解。我们到底得到了什么,同时又失去了什么,一切都能够明明白白。

国家经济与我们息息相关,就业与薪资是与我们每个正在拼搏的人直接相关的部分。看到国家的大家,才能看清自己的小家。同样的3选2,一个是工程领域,一个是经济领域,放在一起看才能发现其中的共性,这也是我把两者放在一起来介绍的原因。

世间万物均有规律,只有那些了解规律,遵循规律的人才能适应变化,生生不息。愿知识能给为我们拨开云雾,看清事物本质,让我们得以发现更大的世界。

始终敬畏前行,不急不躁,泰然自若。