分布式系统:CAP
所谓CAP理论,即:
Cosistency 数据的一致性写完数据后,立马能看到最新数据。
Availability 高可用性所有请求必须有响应。
Tolerance to newowrk Partitions 分区容忍性网络或服务器故障不会导致系统不可用。
一个数据存储系统不可能同时满足上述三个特性,只能同时满足其两个特性,也就是: CA,CP,AP。可以这么说,当前所有的数据存储解决方案,都可以归类的上述三种类型。
CA满足数据的一致性和高可用性,但没有可扩展性,如传统的关系型数据,基本上满足是这个解决方案,如ORACLE , MYSQL 的单节点,满足数据的一致性和高可用性。
CP满足数据的一致性和分区性,如Oracle RAC ,Sybase 集群。虽然Oracle RAC具备一点的扩展性,但当节点达到一定数目时,性能(也即可用性)就会下降很快,并且节点之间的网络开销很在在,需要实时同步各节点之间的数据。
AP在性能和可扩展性方面表现不错,但在数据一致性方面会用牺牲,各节点的之间数据同步没有哪么快,但能保存数据的最终一致性。当前热炒的NOSQL大多类是典型的AP类型数据库。
综合上述,架构师不要企图设计一套同是满足CAP三方面的数据库。只能在根据业务场景,对数据存储要求有所折衷。
网友评论