知识贴:分布式系统的CAP理论

Posted 我们全都爱学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识贴:分布式系统的CAP理论相关的知识,希望对你有一定的参考价值。

分布式系统的CAP理论,是由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency)、可用性(Availability),以及分区容错性(Partition tolerance):


  • 一致性

在分布式系统中数据往往在多地存在多个副本,一致性描述的是这些副本中的数据在内容和组织上的一致。


  • 可用性

可用性描述了系统对用户的服务能力,即用户容忍的时间范围内返回用户期望的结果。


  • 分区容错性

分布式系统通常由多个节点构成,这些节点通常分布在不同的网络中,然而网络始终是不可靠的,所以存在分布式集群中的节点因为网络通信故障导致被孤立成一个个小集群的可能性,分区容错性要求在出现这种情况下系统仍然能够对外提供一致性的可用服务。(Partition字面意思是网络分区,即因网络因素将系统分隔为多个单独的部分。)


对于分布式系统而言,我们始终要假设网络是不可靠的,所以分区容错性是对一个分布式系统最基本的要求;因此更多的尝试是在可用性和一致性之间寻找一个平衡点。既然不能同时满足三个条件,而分区容错性是不可选择的一项,那么在实际应用中往往根据具体需求,在可用性和一致性之间做出权衡,有些应用偏向可用性,降低一定的一致性,例如只要满足最终一致性就行,另一些应用偏向一致性,适当牺牲一些可用性。



考虑支持两种的分布式组合:


  • CA组合:保证C(一致性)和A(可用性),而不要求P(分区容错性):

    这类系统基本上是单机系统,比如单机数据库。


  • CP组合:保证C(一致性)和P(分区容错性),而不要求A(可用性):

    相当于每个请求都需要在各个节点之间强一致,而不考虑同步时间,这样严重降低了可用性。


  • AP组合:保证A(可用性)和P(分区容错性),而不要求C(一致性):

    一旦分区发生,节点之间可能会失去联系,每个节点只能用本地数据继续提供服务,而这样会导致全局数据的不一致性。



以上是关于知识贴:分布式系统的CAP理论的主要内容,如果未能解决你的问题,请参考以下文章

拜托!这才是分布式系统CAP的正确打开方式!

分布式系统理论基础 - CAP

分布式之CAP定理和BASE理论

重温分布式系统的CAP理论

分布式初探——分布式系统的CAP理论

分布式系统CAP理论