CAP的含义:

C:Consistency 一致性 同一数据的多个副本是否实时相同。

A:Availability 可用性 可用性:一定时间内 & 系统返回一个明确的结果 则称为该系统可用。

P:Partition tolerance 分区容错性 将同一服务分布在多个系统中,从而保证某一个系统宕机, 仍然有其他系统提供相同的服务。

CAP理论告诉我们,在分布式系统中,C、A、P三个条件中我们最多只能选择两个。那么问题来了,究竟选择哪两个条件较为合适呢?

对于一个业务系统来说,可用性和分区容错性是必须要满足的两个条件,并且这两者是相辅相成的。业务系统之所以使用分布式系统,主要原因有两个:

提升整体性能 当业务量猛增,单个服务器已经无法满足我们的业务需求的时候,就需要使用分布式系统,使用多个节点提供相同的功能,从而整体上提升系统的性能,这就是使用分布式系统的第一个原因。

实现分区容错性 单一节点 或 多个节点处于相同的网络环境下,那么会存在一定的风险,万一该机房断电、该地区发生自然灾害,那么业务系统就全面瘫痪了。为了防止这一问题,采用分布式系统,将多个子系统分布在不同的地域、不同的机房中,从而保证系统高可用性。这说明分区容错性是分布式系统的根本,如果分区容错性不能满足,那使用分布式系统将失去意义。

此外,可用性对业务系统也尤为重要。在大谈用户体验的今天,如果业务系统时常出现“系统异常”、响应时间过长等情况,这使得用户对系统的好感度大打折扣,在互联网行业竞争激烈的今天,相同领域的竞争者不甚枚举,系统的间歇性不可用会立马导致用户流向竞争对手。因此,我们只能通过牺牲一致性来换取系统的可用性和分区容错

分布式事务中的CAP理论相关推荐

  1. 分布式事务中的Base理论

    CAP理论告诉我们一个悲惨但不得不接受的事实--我们只能在C.A.P中选择两个条件.而对于业务系统而言,我们往往选择牺牲一致性来换取系统的可用性和分区容错性.不过这里要指出的是,所谓的"牺牲 ...

  2. 分布式事务,EventBus 解决方案:CAP【中文文档】

    前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下 .NET Core 事件总线,分布式事务解决方案:CA ...

  3. 从分布式一致性谈到CAP理论、BASE理论

    问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车 票, ...

  4. 分布式事务中常见的三种解决方案

    分布式事务中常见的三种解决方案 目录 一.分布式事务前奏 二.柔性事务解决方案架构 (一).基于可靠消息的最终一致性方案概述 (二).TCC事务补偿型方案 (三).最大努力通知型 三.基于可靠消息的最 ...

  5. 分布式事务中的那些事——微服务总结(二)

    文章目录 前言 事务和分布式事务 导致数据不一致的问题 CAP和BASE理论 CAP理论 Base理论 常见的分布式事务解决方案 两阶段提交(2PC) TCC分布式事务 基于本地消息表的最终一致性 基 ...

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

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

  7. .NET Core 事件总线,分布式事务解决方案:CAP

    背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...

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

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

  9. 处理 Seata分布式事务中 没有传递XID 导致事务失效的问题

    问题与解决思路:当业务方法开启全局异常处理器后,TM注册到TC获取到一个XID,此时在业务中,服务远程访问时,此XID会被下面分支业务方法RM接收到,当各个方法处理完成后RM会向TC直接交互把结果通过 ...

最新文章

  1. 企业文件服务器资源管理方案
  2. redisson用阿里云集群版redis的问题_redission 序列化问题追踪
  3. 全局变量链接时的冲突
  4. 20年前的吴恩达,藏在一个数据集里
  5. 根据身份证号码获取年龄
  6. NMF(非负矩阵分解)
  7. 供应链金融如何促进产业融合?
  8. 第一节计算机课开场白,老师第一节课的开场白
  9. idea光标移至行尾快捷键——End键不能移至行尾的解决办法
  10. 【原创】EXCEL数组公式(1)----数组公式和普通公式计算具体比较
  11. 软件测试工程师面试题之(计算机网络上)
  12. contour()函数的理解
  13. Formality总结
  14. codeforces 416C C. Booking System(贪心)
  15. Python语言程序设计基础 第二版(嵩天著)课后答案第四章
  16. C#时间显示格式(12小时制VS24小时制)
  17. 怎么预防过敏性鼻炎呢?
  18. 你和真努力还差这几点
  19. [置顶]援引个人新浪博客
  20. alex股票查询小程序练习

热门文章

  1. JAVA读取文件操作时路径的斜杠问题
  2. 四、spring中高级装配(2)
  3. 浅谈tomcat中间件的优化【转】
  4. 查某个类是否实现了某个协议
  5. vs2010功能使用体验篇
  6. 使用命令行建立Zend Framework项目
  7. 快速复制数据库表中的数据SQL
  8. Python自动化测试框架有哪些?
  9. commons-lang3:ArrayUtils
  10. ROS 命令以及相关内容学习(二)