CAP原则
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾
-
一致性
一致性指的是分布式系统完成某个写操作时,服务器的各个都应该获取到最新的值,保持各个节点之前的数据一致性
-
可用性
可用性指的是在分布式系统中,用户可以永远在正常时间内进行读和写操作,一直可以正常访问并得到响应
-
分区容错性
分区容错性是指,在分布式系统中,其中一个节点宕机,整个系统还是能满足一致性和可用性的服务,就是说部分故障不影响整体使用,所以在项目架构时都会考虑一些外部因素造成的故障,都是要求部分故障不影响整体使用的
CP:优先保证一致性和分区容错性,在数据一致性要求比较高的场合使用,在出现问题时牺牲用户体验,恢复之后用户正常访问
AP:优先保证可用性和分区容错性,其中一个节点出问题之后还是能正常访问,不会影响用户体验,但是可能接收到的数据不是最新的数据,恢复之后数据变一致
zookeeper保证的就是CP
- zookeeper不能保证每次请求的可用性,如果其中一个节点宕机或者在和另外一个节点同步数据的时候网络发生问题,请求就会出问题,会等恢复正常数据同步之后才会继续可以访问
eureka保证的是AP
- 在其中一个节点出问题时,其他节点可以正常访问,只不过可能数据不是最新数据,eureka还有自我保护机制,在运行期间统计心跳失败的比例,在15分钟之内是否小于85%,如果低于的话就会将这些实例保护起来,不会注销此项服务