不一样节点请求或屡次请求。数据要一致。(多个节点数据同步须要时间)
复制代码
发起请求,必需要有响应(要在规定时间返回结果)
复制代码
大多数分布式系统都分布在多个子网络。由于如今的网络问题,基本都会出现访问失败,因此必定要有分区容错性。那么P就必定要有。(分布式系统都有多个节点,挂掉部分也要继续可用,若是没有的话,有些请求就一直返回失败,直到问题解决。)
复制代码
CA:
保证了数据一致性和服务的可用性。
由于如今的网络环境。基本都会出现访问失败。因此不可能不要分区容错性。
CA架构很难实现。
CP:
保证了数据的一致性和分区容错性。
分区容错性有了,那么就须要多个节点,数据同步就须要时间。
当时间上去了,为了保证数据的一致性。服务须要时间等待数据同步完成才获取数据,等待时间太久就会致使服务不可用。就至关于不能实现A。
AP:
保证了服务的可用性和分区容错性。
分区容错性有了,那么就须要多个节点。须要保证服务可用性,就须要快速响应。
要快速响应,就不能等待数据同步完成才响应。
因此就会致使数据非一致性,至关于不能实现C。
复制代码
要保证数据一致性。那么就须要时间。须要时间。服务可用性就不能知足了。
要保证服务可用性,那么就须要尽快返回。要速度快,就表示数据来不及同步。因此就不能保证数据一致性。
复制代码
CP: Zookeeper,Consul,etcd 若是你要保证数据一致性,那么就用CP的。网络
AP: Eureka 若是你要保证服务可用性。那就用AP的架构