CAP初探

分布式系统有三个重要指标:
-Consistency : 一致性
-Availability : 可用性
-Partition tolerance:分区容错性

这三个指标不可能同时做到,只能满足其中的两条,这被称之为CAP定理

一致性(Consistency)

一致性是指:在分布式系统中,不同的服务器之间所拥有的数据是相同的,不同用户同时访问不同分区的服务器,获取到的信息是完全相同的;

可用性(Availability)

可用性是指:在分布式系统中,不同的服务器均能向客户端正常提供服务,如果不同分区之间出现网络中断,分区的服务器出现不可用,则认为是不满足可用性;

分区容错性(Partition tolerance)

分区容错性:分区容错性是分布式系统必须具备的一项特性,某一分区服务器出现宕机,整个服务器集群仍然可以提供满足一致性和可靠性的服务;

从一致性和可用性的定义可以看出,这两个条件在分区网络出现中断的异常条件下是不可能同时满足的,原因很简单,当网络中断时,数据更新无法同步到所有节点,集群中所有节点的数据是不一致的,如果要满足一致性,则必须要将不一致的节点置为不可用,这时就不能满足可用性;反之亦然;

CAP定理告诉我们分布式系统只能满足CAP中的两个条件,分区容错性是分布式系统一定要具备的特性,所以一个系统只会满足AP或者是CP;
CP系统放弃了可用性,代价是无法向部分用户提供服务,满足CP特性的常见系统有:火车票系统,这时候要保证火车票库存的一致性,出现部分用户不可用也是可以接受的;
AP系统放弃了一致性,代价是当分区网络中断时,不同的用户看到的数据可能会不同,常见的AP系统有电商网站,不同用户看到的商品库存可能不一致,下单时有部分用户会出现下单失败,这个其实是实现了最终一致性;

你可能感兴趣的:(CAP初探)