转载自 分布式系统架构常识:CAP理论

什么是CAP理论?

2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP,之后CAP理论正式成为分布式计算领域的公认定理。

CAP理论是由下面三个概念组成的,且在分布式系统中三者不能兼得,只能同时满足两种条件。

一致性(C)

All nodes see the same data at the same time

所有数据库集群节点在同一时间点看到的数据完全一致,即所有节点能实时保持数据同步。

可用性(A)

Reads and writes always succeed

读写操作永远是成功的。即服务一直是可用的,即使集群一部分节点故障,集群整体还能正常响应客户端的读写请求。

分区容错性(P)

The system continues to operate despite arbitrary message loss or failure of part of the system

尽管系统中有任意的信息丢失或故障,系统仍在继续运行。以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

CAP权衡使用

1、保留CA,放弃P

如果想避免分区容错性问题的发生,一种做法是将所有的数据(与事务相关的)都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重的影响系统的扩展性。

作为一个分布式系统,放弃P,即相当于放弃了分布式,一旦并发性很高,单机服务根本不能承受压力。

像很多银行服务,确确实实就是舍弃了P,只用单台小型机+ORACLE保证服务可用性。

2、保留CP,放弃A

相对于放弃“分区容错性“来说,其反面就是放弃可用性。一旦遇到分区容错故障,那么受到影响的服务需要等待一定的时间,因此在等待期间系统无法对外提供服务。

作为分布式系统,有分区服务发生问题很有可能,如果因为某些服务不能用,导致整个服务都不能用,这个根本不是好的分布式系统。

3、保留AP,舍弃C

这里所说的放弃一致性,并不是完全放弃数据一致性,而是放弃数据的强一致性。即放弃了同一时刻的数据一致性,而保留数据的最终一致性。

以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。

通常情况下,很多分布式服务系统都是采用该方案,保证可用性性,分布式服务,因为某些分区服务发生问题,先容忍,最终通过一些折中的方法达到最终数据一致性。

分布式系统架构常识:CAP理论相关推荐

  1. 分布式系统架构以及 CAP 原理

    精选30+云产品,助力企业轻松上云!>>> 点击蓝色"大数据每日哔哔"关注我 加个"星标",第一时间获取大数据架构,实战经验 ● 本文主要分为 ...

  2. Eureka工作原理(Eureka简介Eureka ServerEureka Client自我保护机制分布式系统中的CAP理论Eureka 工作流程)

    一.Eureka简介 Eureka Server(注册中心,相当于zookeeper) Eureka Client: Provider Consumer 多个Eureka就叫集群.集群之间会定时通过r ...

  3. 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测.而且看了很多书和视频还是一脸懵逼.这篇文章主要使用大白话的方式,带你理解一下分布式系统中的CAP理论.保证你能听懂. 为 ...

  4. 浅论服务端应用程序开发中的CAP思想(非分布式系统中的CAP理论)

    本文从属于笔者的<服务端应用程序结构风格变迁之路> CAP理论是分布式系统构建中的基础理论之一,其中的C(Consistency),一致性即指所有的节点都能访问同一份最新的数据副本.A(A ...

  5. 分布式架构之CAP理论/AP架构/CP架构

    上一篇梳理一下 CAP定理:https://blog.csdn.net/Soinice/article/details/96782876 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性) ...

  6. 分布式系统中的CAP理论和BASE理论详解

    一.CAP理论 CAP 理论/定理open in new window起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因此 CAP定理又被 ...

  7. 阿里P9李运华:想成为架构师,你必须知道CAP理论

    CAP定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在2000年的ACM PODC上提 ...

  8. 美团即时物流的分布式系统架构设计

    背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验.最主要的收获包括两点: 即时物流业务对故障和高延迟的容忍度极低 ...

  9. 美团外卖分布式系统架构设计

    背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验.最主要的收获包括两点: 即时物流业务对故障和高延迟的容忍度极低 ...

最新文章

  1. python tornado入门_Tornado入门
  2. JVM之堆Heap体系概述
  3. 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)
  4. spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程...
  5. chatbot2 RNN语言模型
  6. memset 结构体内指针_数据结构之线性表应用——内存管理
  7. 51单片机PWM程序详解
  8. 简单触发器的使用 -- 献给SQL初学者
  9. 《Java程序员职场全功略:从小工到专家》连载四:IT人不容易
  10. 如何学习Android系统源码
  11. 华为交换机重制_华为交换机如何初始化?华为交换机初始化配置-百度经验
  12. 请等候windows modules installer_【全国交通安全日】员工上下班安全攻略请收好!...
  13. Win10GodMode上帝模式
  14. 灯具防水等级测试和试验箱
  15. 第九届河南省程序设计大赛 1273-宣传墙(java)
  16. java 办公_Java003-协同办公OA
  17. android com.mylhyl,Android 高仿微信朋友圈拍照上传功能
  18. 计算机网络协议第一章,网络协议基础知识
  19. Lattice原理及在通信中的应用 2 Packing, Covering, Quantization, Modulation
  20. 计算机组成原理实验tec2000,TEC-2000A计算机组成原理实验系统

热门文章

  1. LeetCode 111二叉树的最小深度-简单
  2. 高等数学上-赵立军-北京大学出版社-题解-练习5.5
  3. C++string容器-字符串拼接
  4. HDU - 2444——The Accomodation of Students(判断二分图,二分图最大匹配)
  5. C - Maximize GCD(简单数论)
  6. B.The Tortoise and the Hare 长春
  7. [蓝桥杯2016初赛]方格填数
  8. CF1016G. Appropriate Team(Pollard-pho,FWT,数论)
  9. 牛客题霸 [三个数的最大乘积]C++题解/答案
  10. AtCoder4515 [AGC030F] Permutation and Minimum(dp)