网上概念性的很多,我就不进行例举了。
CAP只是一中理念,在分布式环境中必要的分区容错性是一定需要去考虑的,所以只有AP、CP两种了。
需要注意的是C中的一致性指的是强一致性,强调的是事务,而在大部分应用选择上都不会选择这个,会选择性能方面更高的最终一致性、高可用模式AP,当然具体还是得看业务场景,不能草率而论。
AP:可用性强,一致性弱
举个栗子,在进行秒杀活动的时候,明明我们看到的商品数量是能够进行购买的,但是当我们提交订单的时候可能就提示活动太火爆,请稍后重试。或者12306在购票的场景也是类似,明明看到是有票的但是购买的时候显示无票了。
CP:可用性弱,一致性强
举个栗子,银行某些特定的业务如转账等要求同步完成的场景。
在常用的一些组件中也有用到这些理念,比如Redis、Zk用的是CP,Eureka用的是AP...