分布式系统如今变得愈来愈重要,CAP 定理描述了分布式系统的固有特性,能帮助咱们更好地理解分布式系统
文章翻译自stackoverflow高赞回答,有能力的同窗建议看看原文
https://stackoverflow.com/que...网络
Consistency
一致性
集群中各个结点的数据老是一致的,所以你能够向任意结点读写数据,并老是能获得相同的数据分布式
Availability
可用性
可用性表示你老是可以访问集群,即便集群中的某个结点宕机了翻译
Partition tolerance
分区容忍
容忍集群持续运行,即便他们中存在分区(两个分区中的结点都是好的,只是分区之间不能通讯)code
为了能同时达到可用性和分区容忍,你必须放弃一致性。假设你的集群中有两个结点 X 和 Y,如今他们之间网络通讯中断了,所以他们再也不可以同步数据,这时你能够做出以下选择:rem
CAP不能同时成立,因此会出现如下三种组合get
Consistency & Availability
:只要全部结点都在线,那么结点中的数据都是一致的。你能够向任意结点读写数据,并确信他们的数据都是相同的。但只要分区出现,数据将再也不同步 (P不成立,即不能容忍分区出现)Consistency & Partition tolerance
:要求全部结点的数据都是一致的。容忍分区出现,但当有部分结点 down 掉后 (分区出现时集群会认为是部分结点down掉),为了不数据不一样步,集群会变成不可用Availability & Partition tolerance
:全部结点保持在线,即便他们之间存在分区不能相互通讯,当分区问题解决后再从新同步数据。因此你不能保证全部结点的数据都是一致的 (在分区出现期间或以后)你能够认为 CA 系统实际上不存在,由于分区问题老是会出如今分布式系统中同步