CAP学习笔记

  定义:在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。CAP关注的是分布式数据读写

  • 一致性(Consistence):对某个指定的客户端来说,读操作保证能够返回最新的写操作结果。
  • 可用性(Availability): 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。
  • 分区容错性(Partition Tolerance:当出现网络分区后,系统能够继续“履行职责”。

  虽然 CAP 理论定义是三个要素中只能取两个,但放到分布式环境下来思考,我们会发现必须选择 P(分区容忍)要素,因为网络本身无法做到 100% 可靠,有可能出故障,所以分区是一个必然的现象。如果我们选择了 CA 而放弃了 P,那么当发生分区现象时,为了保证 C,系统需要禁止写入,当有写入请求时,系统返回 error(例如,当前系统不允许写入),这又和 A 冲突了,因为 A 要求返回 no error 和 no timeout。因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构

CAP关键细节点

  • CAP关注的粒度是数据,而不是系统或者节点,所以在系统设计的时候应该将关注点放到数据上,具体数据具体分析。
  • CAP是忽略网络延时的,意味着CAP 理论中的 C 在实践中是不可能完美实现的。在需要强一致性的业务场景中,只能单点写入,其它节点备份。(这里只争对数据,系统还是可以设计成分布式的)
  • 正常运行的情况下,不存在CP或者AP的选择,可以同时满足CA。
  • CAP 理论的“牺牲”只是说在分区过程中我们无法保证 C 或者 A,但并不意味着什么都不做。因为在系统整个运行周期中,大部分时间都是正常的,发生分区现象的时间并不长。分区期间放弃 C 或者 A,并不意味着永远放弃 C 和 A,我们可以在分区期间进行一些操作,从而让分区故障解决后,系统能够重新达到 CA 的状态。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:SD–售前活动(920)-1业务概览

用途 This scenario describes the pre-sales business processes usingthe functions...

3446
来自专栏北京马哥教育

在Load average 高的情况下如何鉴别系统瓶颈

在Load average 高的情况下如何鉴别系统瓶颈。是CPU不足,还是io不够快造成? 或是内存不足? 一:查看系统负载vmstat procs -----...

3174
来自专栏网络

分布式系统CAP理论

往期精选 在讨论常见架构前,先简单了解一下CAP理论: CAP是Consistency、Availablity和Partition-tolerance的缩写。分...

2097
来自专栏尜尜人物的专栏

数据库之架构:主备+分库?主从+读写分离?

注:图中圈出的是数据同步的地方,数据同步(从库从主库拉取binlog日志,再执行一遍)是需要时间的,这个同步时间内主库和从库的数据会存在不一致的情况。如果同步过...

952
来自专栏数据和云

那些被你忽略的性能 - Oracle Redo的产生场景及优化

? 冷菠 冷菠,资深DBA,著有《Oracle高性能自动化运维》,有近10年的数据库运维、团队管理以及培训经验。擅长数据库备份恢复、数据库性能诊断优化以及数据...

2997
来自专栏CSDN技术头条

史上更全的 MySQL 高性能优化实战总结!

MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要...

672
来自专栏杨建荣的学习笔记

数据迁移中需要考虑的问题(r2第15天)

在生产环境中,做数据迁移需要考虑很多的可能性和场景,尽量排除可能发生的问题。我自己总结了下,大体有如下需要注意的地方。 1)充分的测试,评估时间,总结经验,提升...

2759
来自专栏苏强的专栏

腾讯云分布式数据库(DCDB)

DCDB 是部署在腾讯云公有云上的一种兼容MySQL协议和语法,支持自动水平拆分的share nothing架构的分布式数据库。分布式数据库即业务获取是完整的逻...

5030
来自专栏跟着阿笨一起玩NET

数据库大型应用解决方案总结(转)

本人转载:http://www.cnblogs.com/ejiyuan/archive/2010/10/29/1796292.html

472
来自专栏腾讯云数据库团队的专栏

一文教你迅速解决分布式事务 XA 一致性问题

腾讯云发布了分布式数据库解决方案(DCDB),其最明显的特性之一就是提供了高于开源分布式事务 XA 的性能。

1.6K1

扫码关注云+社区