分布式如今是很流行的名词,尤为分布式数据处理领域,随着海量数据的产生,你们都在研究更高效、可扩展性好、高可用性的数据存储系统,虽然你们想尽各类办法,基本上尚未什么产品能超越分布式数据库的CAP原理。 数据库
所谓CAP理论,即: 网络
Cosistency 数据的一致性 架构
Availability 高可用性 分布式
Tolerance to newowrk Partitions 分区容忍性 性能
一个数据存储系统不可能同时知足上述三个特性,只能同时知足其两个特性,也就是: CA,CP,AP。能够这么说,当前全部的数据存储解决方案,均可以归类的上述三种类型。 设计
CA 知足数据的一致性和高可用性,但没有可扩展性,如传统的关系型数据,基本上知足是这个解决方案,如ORACLE , MYSQL 的单节点,知足数据的一致性和高可用性。 同步
CP 知足数据的一致性和分区性,如Oracle RAC ,Sybase 集群。虽然Oracle RAC具有一点的扩展性,但当节点达到必定数目时,性能(也便可用性)就会降低很快,而且节点之间的网络开销很在在,须要实时同步各节点之间的数据。 产品
AP 在性能和可扩展性方面表现不错,但在数据一致性方面会用牺牲,各节点的之间数据同步没有哪么快,但能保存数据的最终一致性。当前热炒的NOSQL大多类是典型的AP类型数据库。 it
综合上述,架构师不要企图设计一套同是知足CAP三方面的数据库。只能在根据业务场景,对数据存储要求有所折衷。 io