CAP是强一致性、可用性(实时可用)、分区容忍性;

Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)

一般来说 P 是前提。所以基本是CA里选,不是任意3选2.是误解,一般来说 P 是前提。所以基本是CA里选,不是任意3选2. 
  为什么呢? 
  P 意指分区容忍性。 这个分区容忍性什么意思,很多人容易望文生义,不要见风就是雨,理解成别的什么意思。所谓分区指的是网络分区的意思,这个一样还是容易望文生义。详细一点解释,比如你有A B两台服务器,它们之间是有通信的,突然,不知道为什么,它们之间的网络链接断掉了。好了,那么现在本来AB在同一个网络现在发生了网络分区,变成了A所在的A网络和B所在的B网络。所谓的分区容忍性,就是说一个数据服务的多台服务器在发生了上述情况的时候,依然能继续提供服务。 
  所以显而易见的,P是大前提,如果P发生了,咱们的数据服务直接不服务了,还谈个毛的可用性和一致性呢。 
  因此CAP要解释成,当P发生的时候,A和C只能而选一。 
  举个简单的例子,A服务器B服务器同步数据,现在A B之间网络断掉了,那么现在发来A一个写入请求,但是B却没有相关的请求,显然,如果A不写,保持一致性,那么我们就失去了A的服务,但是如果A写了,跟B的数据就不一致了,我们自然就丧失了一致性。 
  这里设计就涉及到架构师的选择了。注意这里的一致性是强一致性,意思是AB的数据时刻都是同步的,如果我们放弃了强一致性,不代表我们的数据就是一定是不一致的了,我们可以让A先写入本地,等到通信恢复了再同步给B,这就是所谓的最终一致性,长远的看我们的数据还是一致的,我们只是在某一个时间窗口里数据不一致罢了。如果这个时间窗口小过了用户逻辑处理的时间。那么其实对于用户来说根本毛都感觉不到。 
  最终一致性有个很有意思的协议叫gossip就跟传八卦一个意思,我就把我收到里信息里我本地没有的部分加到我本地,再把这个信息发出去,那么长远的看,网络时好时坏,但是最终所有人都会有所有的信息。因此我们还是能够保证数据的最终一致性的。综上,CAP应该描述成,当发生网络分区的时候,如果我们要继续服务,那么强一致性和可用性只能2选1。

分布式的CAP理论的更多相关文章

  1. 分布式领域CAP理论

    分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可 ...

  2. 分布式系统理论--CAP理论、BASE理论

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

  3. 分布式事务 --- CAP 理论

    本文部分来自参考资料!!半原创 概述 介绍CAP理论,并简单地证明了三存二的定论. CAP 理论 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标.分别为 : C ...

  4. 【分布式】CAP理论及其应用

    CAP Theorem CAP 指的就是 "consistency 一致性","availability 可用性" "partition-tolera ...

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

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

  6. 【转】分布式理论-CAP理论

    一 CAP理论简述 CAP (Consistency, Availability, Partition  Tolerance,) 理论是NoSQL数据库管理系统构建的基础.     强一致性:等同于所 ...

  7. CAP理论与分布式事务解决方案

    微服务系统所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即同时满足"一致性""可用性"和"分区容错"是一件不可能的事.CAP理 ...

  8. 三分钟分布式CAP理论

    分布式系统架构理论,定义了三种指标,理论说我们最多只能满足两个. ## 分布式系统 首先我们这个理论所说的分布式系统,是指系统内会共享数据,互相有连接有交互,才能完成系统功能的的分布式系统.而这个理论 ...

  9. 分布式事务的CAP理论 与BASE理论

    CAP理论 一个经典的分布式系统理论.CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错性(P:Partition ...

随机推荐

  1. [leetcode]678. Valid Parenthesis String验证有效括号字符串

    Given a string containing only three types of characters: '(', ')' and '*', write a function to chec ...

  2. [Mysql]——通过例子理解事务的4种隔离级别(转)

    第1级别:Read Uncommitted(读取未提交内容) 第2级别:Read Committed(读取提交内容) 第3级别:Repeatable Read(可重读) 第4级别:Serializab ...

  3. js的urlencode

    function urlencode (str) { str = (str + '').toString(); return encodeURIComponent(str).replace(/!/g, ...

  4. blockchain good article

    https://medium.com/programmers-blockchain/create-simple-blockchain-java-tutorial-from-scratch-6eeed3 ...

  5. python3.5.2中文字符乱码问题解决

    >>> str = "世界你好!" >>> b = str.encode('utf-8') >>> type(b) <c ...

  6. 简单使用limma做差异分析

    简单使用limma做差异分析 Posted: 五月 12, 2017  Under: Transcriptomics  By Kai  no Comments 首先需要说明的是,limma是一个非常全 ...

  7. 工具类官网Web原型制作分享-Adobe

    Adobe是全球知名的软件开发团队,研发了设计创意领域全球领先的优秀软件产品,为设计行业提供了巨大的价值. 网站原型以图文排版为主,顶部一级导航,弹出面板和面板的使用实现了一级导航下拉的效果. 本原型 ...

  8. python网络socket编程

    一.服务端 #!/usr/bin/python # -*- coding: UTF-8 -*- import socket import sys from thread import * HOST = ...

  9. linux代码常用查询!!!!!!!!!!!!

    字符串: echo "a b c d e f"|cut -d ' ' -f1            输出a echo "a b c d e f"|cut -d  ...

  10. 算法题思路总结和leecode继续历程

    2018-05-03 刷了牛客网的题目:总结思路(总的思路跟数学一样就是化简和转化) 具体启发点: 1.对数据进行预处理排序的思想:比如8皇后问题 2.对一个数组元素进行比较的操作,如果复杂,可以试试 ...