CAP中的P为”分区容错“(Partition tolerance)的意思,一般是分布式系统都会存在”分区容错“,因为服务与服务之间都可能会出现通信问题
CAP中的A是”可用性“(Availability)的意思,可用性就是保证所用的请求都会马上处理并返回。
CAP中的C是”一致性“(Consistency)的意思,一致性就是保证当我更新完一条数据的时候,其他人马上看的到。
为什么说只能有AP 或者CP,CAP不能同时满足,因为满足了一致性就无法满足可用性,比如,由redis实现的分布式锁,当线程A获取了该锁,在锁还没有同步到其他从机的时候,主节点的redis挂掉了,从节点升级为主节点,此时线程B进来也成功获取了锁,这个时候就有两个线程进行同一操作,一致性就得不到保证。
如果到保证一致性,那就必须保证锁没有同步到其他节点之前,其他的线程都会别拒绝或阻塞,这个时候可用性又得不到保证。