什么是CAP理论和BASE思想?

CAP定理

分布式系统的三个指标:

C(一致性)

A(可用性)

P(分区容错性)

Eric Brewer说,分布式系统无法同时满足CAP三个指标,这个结论就叫做CAP定理。

Consitency

用户访问分布式系统中的任意节点,得到的数据必须是一致的

Availability

用户访问分布式系统时,读或写操作总能成功;只能读不能写,或只能写不能读,或两者都不能执行,说明系统弱可用或不可用。

Partition tolerance(一定会有的):

Partition(分区):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。

Tolerance(容错):系统要能容忍网络分区现象,出现分区时,整个系统也要持续对外提供服务

分析

如下图:

要保证一致性:出现了网络分区,node3无法和node1和node2同步,如果现在去写数据就会出现有的节点改了有的节点没有改的情况,所以要保证一致性,就只允许读,不允许写,满足所有节点一致性,但是牺牲了可用性,符合CP。

要保证可用性:此时允许任意读写,满足了可用性,但由于node3无法同步,导致数据不一致,牺牲了一致性,符合AP。

BASE理论

BASE理论是对CAP的一种解决思路,保护三个思想:

其实就是C和A取了一个中间。

在分布式事务中解决方案中的应用

相关推荐
Stringzhua17 分钟前
【SpringCloud】Kafka消息中间件
spring·spring cloud·kafka
想进大厂的小王6 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
customer086 小时前
【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源·intellij-idea
杨荧7 小时前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
aloha_78920 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
茶馆大橘1 天前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
荆州克莱1 天前
[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)
spring boot·spring·spring cloud·css3·技术
Genius Kim1 天前
SpringCloud Sentinel 服务治理详解
spring cloud·sentinel·php