什么是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取了一个中间。

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

相关推荐
Jabes.yang3 小时前
Java大厂面试实录:从Spring Boot到微服务的技术探讨
java·spring boot·spring cloud·微服务·技术面试
不能再留遗憾了5 小时前
【SpringCloud】Sentinel
spring·spring cloud·sentinel
无名客013 小时前
SpringCloud中的网关(Gateway)的作用是什么?
spring·spring cloud·gateway
smilecold2 天前
SpringCloud 入门 - Gateway 网关与 OpenFeign 服务调用
spring cloud·gateway
编啊编程啊程2 天前
【004】生菜阅读平台
java·spring boot·spring cloud·dubbo·nio
金色天际线-3 天前
nginx + spring cloud + redis + mysql + ELFK 部署
redis·nginx·spring cloud
洛小豆3 天前
Swagger3学习与实践指南
spring boot·后端·spring cloud
sg_knight4 天前
Spring Cloud与RabbitMQ深度集成:从入门到生产级实战
java·spring boot·spring·spring cloud·消息队列·rabbitmq·stream
安逸sgr4 天前
SpringMVC启动流程
java·jvm·spring·spring cloud·eclipse·tomcat·maven
Vio7254 天前
Ribbon负载均衡
spring cloud·ribbon·负载均衡