我是靠谱客的博主 单身歌曲,最近开发中收集的这篇文章主要介绍简述CAP理论1.简述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架构

最后

以上就是单身歌曲为你收集整理的简述CAP理论1.简述CAP理论的全部内容,希望文章能够帮你解决简述CAP理论1.简述CAP理论所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部