分布式 基本理论 CAP 2
关于P
P, 即 Partition字面意思是网络分区,其实 包括了 各种网络问题, 我们要把它理解 一个 广义的 分区问题。
P 涉及到了 时间, 这么说吧, 出现了分区, 那就是节点之间 “长久的” 不能通信, 出现 延迟、超时 就是 “暂时的” 不能通信 —— 到底多久才算是 超时呢? 所以说, 我们 通常需要 对 分布式系统 设定个 响应的 时间期限。(—— 其实这就增加的CAP 理解的难度)
P 是指系统必须要容易分区, 也就是 通常所谓的 分区容忍性, 也就是 允许失败的 节点个数。 从量化的理论来讲, 允许失败的 节点个数越多, 分区容忍性越好, P 值越高。
P 的理解 非常有技巧。P 恰恰 说明的是 可以允许 分区存在或 节点失败。 但是, 其实, 我们 容不容忍 都是TM 没有选择余地的!
出现分区问题的时候,可能出现2个分区, 也可能3个, 那么如何选择其中一个呢? 谁来做这个决定呢? 首先, 肯定是系统内部来决定的, 通常, 我们需要在分布式系统中设置一个 master, master 又是怎么来的呢? 是选举出来的! 如果出现了分区, 那 master 还是master 吗? 不是了, 我们需要重新选举? 选举又是如何进行的呢? 我们需要考虑 各种选举算法。
关于A、C
C和A之间选择不是0和1的选择,而是一种连续式选择 从上面的例子看,好像选择C就必须放弃A,反之亦然。但是其实所有这些都有中间方案。C和A的定义也有各种灰度定义。
比如C的定义,最严格的定义就是一个分布式事务结束后,所有的副本在任何时刻都是一致的。但是这个定义可以放宽。时间不在是同时,而是一段时间,给一个时间窗口。或者一阶段内可以不一致,但最终变成一致的。比如上面的例子中,在发生分区的时候,可以暂时不一致,等到通信问题解决了,开始恢复一致性。 而对于A的定义来说,也是有各种层次,在发生分区的时候,可以选择限制部分操作,同时提供一个些事后比较好恢复的操作。
一种经典的系统设计模式
因为在分布式系统中,基本是没有办法选择不要分区的,所以为了保证系统的可用性,和一致性的博弈,经典的设计模式就是分情况对待。当不发生分区的时候保证完美的CA,到出现了分区,进入分区模式,等待分区恢复后,恢复系统,最终达到一致性后,再次进入完美CA状态。
---------------------
作者:miniDan__
来源:CSDN
原文:https://blog.csdn.net/physicsdandan/article/details/52118565
版权声明:本文为博主原创文章,转载请附上博文链接!
1 检测到分区开始
2 明确进入分区模式,限制某些操作,并且
3 当通信恢复后启动分区恢复过程
最后一步的目的是恢复一致性,以及补偿在系统分区期间程序产生的错误。
当系统进入到分区模式,它有两种可行的策略。其一是限制部分操作,因此会削弱可用性。其二是额外记录一些有利于后面分区恢复的操作信息。系统可通过持续尝试恢复通信来察觉分区何时结束。
小结
CAP 还是有一定的复杂性的,因为它是基础的理论, 当我们把各种问题考虑进去之后。情况变得复杂起来。
总之,CAP是非常骚的 理论, 非常扯淡、折腾人的理论。找到一些证据:
就是一个很混乱且缺乏解释力的理论,那么较劲干啥。 理论的原意大概是说你不可能设计一个系统在保证出现一些网络交换器故障导致一些批网络节点无法和另一批节点通信的情况下P依然保证数据一致性C,且保证服务可用A。 这理论听听就行了。如果你是个这个领域的新人,学会大规模系统里需要考虑交换机和路由器坏掉的情况就可以了。
参考:
https://www.zhihu.com/question/54105974?from=profile_question_card
https://blog.csdn.net/physicsdandan/article/details/52118565
分布式 基本理论 CAP 2的更多相关文章
- 分布式 基本理论 CAP 之 各分布式系统的cap支持情况
分布式系统.理论.协议 非常非常多, 它们多cap 的支持是怎么样的呢? 需要注意的是,分布式系统 为了应付各种 复杂 应用场景,支持各种各样的功能,可能有的提供了选项或某种机制, 某个时刻,支持CP ...
- 分布式 基本理论 CAP
谈及分布式,必然谈到 CAP, CAP 已经是被说烂了的一个 话题, 绕不开, 逃不掉. 而且, 理解起来 会有些吃力. 分布式的CAP理论告诉我们 “任何一个分布式系统都无法同时满足 一致性(Co ...
- 【转】分布式理论-CAP理论
一 CAP理论简述 CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础. 强一致性:等同于所 ...
- 分布式事务的CAP理论 与BASE理论
CAP理论 一个经典的分布式系统理论.CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错性(P:Partition ...
- [转帖]浅谈分布式一致性与CAP/BASE/ACID理论
浅谈分布式一致性与CAP/BASE/ACID理论 https://www.cnblogs.com/zhang-qc/p/6783657.html ##转载请注明 CAP理论(98年秋提出,99年正式发 ...
- 分布式数据库中CAP原理(CAP+BASE)
分布式数据库中CAP原理(CAP+BASE) 传统的ACID 1)原子性(Atomicity): 事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功. 2)一致性(Con ...
- 分布式系统和CAP
帽子理论(CAP): C:Consistency,一致性, 数据一致更新,所有数据变动都是同步的 A:Availability,可用性, 好的响应性能,完全的可用性指的是在任何故障模型下,服务都会在有 ...
- 分布式事务与Seate框架(1)——分布式事务理论
前言 虽然在实际工作中,由于公司与项目规模限制,实际上所谓的微服务分布式事务都不会涉及,更别提单独部署构建Seata集群.但是作为需要不断向前看的我,还是有必要记录下相关的分布式事务理论与Seate框 ...
- 分布式:分布式事务(CAP、两阶段提交、三阶段提交)
1 关于分布式系统 1.1 介绍 我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起.明显的弊端就是不易扩展.发布冗重.服务治理不好做. 所以我们把整个系统拆分成若 ...
随机推荐
- ORA-28000: the account is locked解决
首先使用具有sysdba权限的账户登陆,如sys账户和system账户 新建一个sql窗体,并执行语句解锁被锁定的账户,如我这里sgyw账户: alter user sgyw account unlo ...
- h3c_7506e引擎主备镜像同步
备份引擎的镜像文件不匹配会导致主引擎无法识别备引擎解决方法:1.备份主引擎上的启动文件同步到备引擎 ftp ip地址 get 在ftp服务器的镜像文件名 为其命名为本地文件(均为源文件名) ...
- buildroot管理uboot+kernel+rootfs
鉴于自己制作根文件系统太麻烦了,所以想用buildroot管理uboot,kernel,另外还可以自动生产rootfs,于是花了两天研究了下buildroot的框架和使用,在自己的2440开发板上也跑 ...
- Python 二分法
# coding = utf-8 import random def Creat_Arr(): arr = [] for i in range(0,50) : arr.append(random.ra ...
- parrotsec 和 kali安装系统的时候出现“executing grub-install dummy”的解决方案
在物理机的环境下安装系统出现点问题,弄了好一会才弄出解决方法 1.parrot和kali安装的时候出现了无efi分区不能继续的问题,要知道我之前安装的时候一直都是\ ; 内存; \home三个分区搞定 ...
- 加载Excel时,如何过滤空行空列
巨硬为Excel提供了丰富的C#接口,基本上可以将Excel当做一个微型数据库来用,奈何前端的我们,sql也只会写两句select * from table: 目前工作中遇到了一个问题,在需要读取的E ...
- 提交代码,SVN被锁定,提示:svn is already locked解决方案
今天遇到一个问题,svn 在提交代码的时候出现了svn is already locked,这是什么鬼,svn 没少用,但是这种情况,还是第一次遇到,于是,百度一下,查了一下,做一下个人分享. 遇到这 ...
- 解决java新开页面被拦截的问题
在开发中遇到from表单利用 target="_blank" 属性新开页面时被拦截. 用ajax让form表单提交,这时有可能浏览器会拦截新开页面,这时只 需要设置 ajax 同步 ...
- Windows和Office激活工具Kmsauto Net
对于微软操作系统和OFFICE的激活,以前笔者用过 ”HEU_KMS_Activator_v11.2.0” ,不过这个工具速度相对比较慢.今天给大家推荐一个新的激活工具:KmsautoNet . 很简 ...
- DNS服务器地址汇总
如果修改DNS服务器地址就可以访问google等服务,你还等什么?使用免费DNS解析服务除了去掉了运营商的各种广告,还有个最大的好处就是不会重定向或者过滤用户所访问的地址,这样就防止了很多网站被电信. ...