CAP

CAP

一、概述

  分区容错性:

  理解:分布式系统集群中,一个机器坏掉不应该影响其他机器

  可用性:

  意思就是收到用户的请求,服务器必须给出回应

  比如说有G1和G2两台服务器

  用户无论是对G1还是G2请求,都能立即获得响应

  一致性:

  写操作之后,读操作,必须返回该值。

  G1和G2两台服务器,用户对G1里面的数据进行了更改,但是去G2服务器发起了读取,但是由于G1和G2之间要进行同步,那么用户无法立即获得回应,必须等同步完了以后获得回应。也就是说G1修改了后,会向G2发送消息,要求G2也修改。

  为什么一致性和可用性不能同时成立

  因为可恶出现分区容错,通信发生错误。

  比如保证G2一致性的时候,G1必须在写操作时,锁定G2的读操作和写操作。只有数据同步后,才重新开放读写。锁定期间,G2不能读写,这样就没有了可用性。

  如果保证可用性,那么就不能锁定G2,那么一致性就不成立。

  所以有了BASE理论

BASE理论:

  基本可用、软状态、最终一致性

  基本可用:允许服务降级或者允许响应时间收到一定损失。性能和响应时间上肯定会损失一些

  软状态:允许同步数据的时候出现一定时间延迟。

  最终一致性:经过一段时间的同步数据后,最终能够达到一个一致的状态。

  

posted @ 2020-11-21 14:59  springcode  阅读(237)  评论(0编辑  收藏  举报