概述
1.简述CAP理论
简介:
CAP理论是分布式的理论基础
起初都是单体应用,随着业务扩展,流量越来越大,单体扛不住高并发,分布式将业务拆分成子业务部署到不同的机器上,不同的机器节点通过网络进行通信,协作服务;
分布式系统必须要考虑网络分区的问题:
有网络,就会有网络交互的问题,假如A节点到B节点网络不可达,不能影响正常服务,系统要能够正常提供服务
- 正常服务的定义
(1)服务能够正确返回
(2)结果在一定的时间范围内返回
cap理论分为三个部分:
-
数据一致性(consistency): 如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果写操作返回失败,那么之后所有的读请求都不能读到这个数据;对于调用者而言数据具有强一致性
-
服务可用性(availability):所有读写请求在一定时间内得到响应,不会一直等待
-
分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍然能够正常对外服务;
场景:
场景1. 单体应用
- 对于单体应用而言,是不考虑分布式的,没有网络分区,也就是说没有CAP理论中的P
- 数据一致性:可以通过事务来保证
- 服务可用性:不同业务有不同的可用性标准
场景2. 分布式应用
- 分布式应用,必须要包含P,因此CAP理论中,只能保证CP或者是AP,CA不可兼得
- 有网络通信,就必然会出现网络不可达的情况
为什么CAP三者不能兼得?
(1)存在网络分区,那么网络中的节点之间就有可能数据不一致;比如往节点A中写入数据,B节点由于网络原因没有同步数据过去,如果此时往B节点读取数据是不能读到数据的,所以在存在网络分区的情况下,数据是不可能保持一致的
(2)两个节点网络隔离了,想要保证数据一致性只能等待网络恢复,将数据同步,才能读取到数据;也就是说如果想要保证数据强一致性,那么在等待网络恢复的过程中,是不能对外提供服务的,因此保证CP无法保证A;相应的如果保证AP,是无法保证C的
所以在分布式框架中,要么是AP架构要么是CP架构
最后
以上就是单身歌曲为你收集整理的简述CAP理论1.简述CAP理论的全部内容,希望文章能够帮你解决简述CAP理论1.简述CAP理论所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复