博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大型网站CAP理论和BASE模型
阅读量:4099 次
发布时间:2019-05-25

本文共 665 字,大约阅读时间需要 2 分钟。

CAP理论

2007年7月,在PODC会议上Eric Brewer提出了著名的CAP理论,CAP分别代表的是Consistency,Availability,Partition-Tolerance三个短语的首字母,翻译成中文即数据一致性,数据可用性,分区耐受性。如图所示:

这里写图片描述

  • Consistency:所有的节点在同一时刻看到的数据是一样的,也就是数据的一致性
  • Availability:无论成功与否,都要保证每个请求都能收到响应。
  • Partition-Tolerance:如果有错误或者信息丢失,系统依然可以继续运行。

在分布式系统中想让以上三个条件全部满足那是基本不可能滴,但是我们可以根据系统的实际需求可以对以上三项进行设计和权衡。

  • CA:放弃P——分区耐受性,正如上图所示,正是我们传统的单机数据库——DBMS。
  • AP:放弃C——数据一致性,这个是大部分分布式系统设计的选择。
  • CP:放弃A——数据可用性,一般不会这么干,如果网络有问题的话,系统也基本就废了。

所以一般来讲还是首选A,至于P和C,根据实际需求在做讨论。

BASE模型

  • Basically Available:基本可用。
  • Soft State:软状态,可以一段时间内状态不同步。
  • Eventually consistent:最终一致性。

以上就是BASE模型,在大型网站中,一般都不会选择强一致性,强一致性意思就是数据在物理存储中总是一致的,想要保住强一致性,服务器需要付出较大的代价,所以一般会选择最终一致性,过程中一致不一致无所谓,只要最终结果一致就行了。

你可能感兴趣的文章
Java的新未来:逐渐“Kotlin化”
查看>>
Java反射是什么?看这篇绝对会了!
查看>>
京东T9用一份900页SpringBoot笔记让你像搭积木一样构建系统架构
查看>>
目前开发中爆火的Java、Go和Rust间的比较!
查看>>
Java语言新特性?封印类
查看>>
MySQL深度解析,基础+高级篇数据库教程-从入门到入坟
查看>>
全网最全SpringBoot干货知识总结(超详细,建议收藏)
查看>>
同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题
查看>>
凭借这份文档,阿里Java岗四面直接定级P8,面经面试题分享
查看>>
Spring Boot在微服务中的最佳实践
查看>>
请把 .gitattributes 加到你的 Git 仓库中
查看>>
太赞了!美团T9终于整理出Java架构之完美设计实战开源文档
查看>>
一篇文章让你了解基于Spring的测试
查看>>
10个微服务架构设计的最佳实践
查看>>
分布式ID生成策略,我和面试官掰扯了一个小时
查看>>
逆袭大厂之路——Java程序员必备金九银十跳槽面试涨薪秘籍
查看>>
清华架构师熬夜整理,带你走进Kafka消息中间件
查看>>
GitHub上标星120k的Java进阶面试教程等!(建议收藏)
查看>>
为什么说Java程序员到了必须掌握SpringBoot的时候
查看>>
基于Rust-vmm实现Kubernetes运行时
查看>>