简述CAP理论

1.简述CAP理论

简介:
CAP理论是分布式的理论基础
起初都是单体应用,随着业务扩展,流量越来越大,单体扛不住高并发,分布式将业务拆分成子业务部署到不同的机器上,不同的机器节点通过网络进行通信,协作服务;

分布式系统必须要考虑网络分区的问题:
有网络,就会有网络交互的问题,假如A节点到B节点网络不可达,不能影响正常服务,系统要能够正常提供服务

  • 正常服务的定义
    (1)服务能够正确返回
    (2)结果在一定的时间范围内返回

cap理论分为三个部分:

  1. 数据一致性(consistency): 如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果写操作返回失败,那么之后所有的读请求都不能读到这个数据;对于调用者而言数据具有强一致性

  2. 服务可用性(availability):所有读写请求在一定时间内得到响应,不会一直等待

  3. 分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍然能够正常对外服务;

场景:
场景1. 单体应用

  • 对于单体应用而言,是不考虑分布式的,没有网络分区,也就是说没有CAP理论中的P
  • 数据一致性:可以通过事务来保证
  • 服务可用性:不同业务有不同的可用性标准

场景2. 分布式应用

  • 分布式应用,必须要包含P,因此CAP理论中,只能保证CP或者是AP,CA不可兼得
  • 有网络通信,就必然会出现网络不可达的情况

为什么CAP三者不能兼得?
(1)存在网络分区,那么网络中的节点之间就有可能数据不一致;比如往节点A中写入数据,B节点由于网络原因没有同步数据过去,如果此时往B节点读取数据是不能读到数据的,所以在存在网络分区的情况下,数据是不可能保持一致的
(2)两个节点网络隔离了,想要保证数据一致性只能等待网络恢复,将数据同步,才能读取到数据;也就是说如果想要保证数据强一致性,那么在等待网络恢复的过程中,是不能对外提供服务的,因此保证CP无法保证A;相应的如果保证AP,是无法保证C的

所以在分布式框架中,要么是AP架构要么是CP架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值