浅析分布式Cap定理和Base理论! (浅析分布式光伏)

教程大全 2025-07-14 07:44:26 浏览

浅析分布式Cap定理和Base理论!

2020-10-16 06:36:57根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。

引言

在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。

这个定义读下来是不是让人看的一脸懵逼,多读几遍是不是又会觉得有那么点明白了。CAP 理论听起来十分抽象,本文尝试以生活中的例子并用通俗易懂的语言来解释 CAP 理论的含义。

CAP小故事

这个故事感觉讲的还是挺有意思的,大家点击链接进去看看或者点击阅读原文进行阅读。相信看了这个小故事之后,再来看看前面的定义可能会觉得 更好理解了。

Cap的权衡

通过CAP理论我们可以无法同时满足一致性、可用性和分区容错性这三个特性,那么我们需要怎么权衡呢?

选择CA放弃 P

这种情况的话在分布式系统中基本是不可能存在的。因为在分布式环境下分区是必然的,如果我们要舍弃P就意味着我们要舍弃分布式系统,所以也就没必要再来讨论CAP理论了,

选择CP放弃A

一个分布式系统如果不能做到可用性,经常宕机或者停止提供服务的话,这样的话用户体验是非常差的,就像曾经的“微盟删库事件”,只有等到所有的数据都被找回来才会继续对外提供服务,这期间停机多久,给商家造成了的多大的损失。我们常见的CP分布式系统有分布式数据库(redis)等,以及Zookeeper等都是优先保证数据的强一致性,来舍弃系统的可用性。

放弃AP放弃C

如果要保证高可用并允许分区,则需要放弃一致性。一旦网络问题发生,节点之间可能会失去联系。为了保证高可用,需要在用户访问时可以马上得到返回,则每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现如今应该大多数场景都是会选择可用性,而去牺牲一致性(保持最终一致性),就像我们春节抢红包的时候,它不会立马告诉你抢了多少金额,只是提示你过多久再去查看。以及我们春节抢票的时候,明明看到这辆高铁还是邮票的但是等你填完验证码,以及乘客信息真正提交订单的时候就告诉你没票了,你再返回列表页查看该车次的时候,也还继续显示着有票 。这些虽然用户体验有那么一丢丢的不友好,但是也能接受。

小结

CAP的选择的话没有哪种更好,只有根据自己的业务场景来选择,选择适合自己的才是最好的。

Base理论

既是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

Basically Available(基本可用)

什么是基本可用?牺牲性能(服务响应时间)、体验(部分功能体验)以保证基本可用。牺牲性能:比如我们查询商品正常情况响应时间都是1s左右返回结果,但是基本可用的话返回结果都是10s返回结果。牺牲体验:比如双十一的时候,淘宝只会保证核心功能可用(下单、支付等),其他非核心(退货、修改地址等)的功能都会进行降级,关于降级可以看下以前这个文章《高并发系统三大利器之降级》

Soft State(软状态)

允许不影响整体可用性的中间状态 即允许系统在多个不同节点的数据副本存在数据延时。

Eventual Consistency(最终一致性)

上面说软状态,然后不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性。从而达到数据的最终一致性。这个时间期限取决于网络延时,系统负载,数据复制方案设计等等因素。

系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都能够获取到最新的值。

结束

浅析分布式光伏

由于自己才疏学浅,难免会有纰漏,假如你发现了错误的地方,还望留言给我指出来,我会对其加以修正。


中学数学竞赛题

连结AP,BP,CP,APa,BPb,CPc 显然四边形BPCPa是平行四边形 BP=CPa,CP=BPa,∠BCP=∠CBPa,∠CBP=∠BCPa 根据正弦定理 BPa/sin∠BAPa=APa/sin(∠ABC+∠CBPa) CPa/sin∠CAPa=APa/sin(∠ACB+∠BCPa) ==>sin∠BAPa/sin∠CAPa =CPsin(∠ABC+∠CBPa)/BPsin(∠ACB+∠BCPa) =CPsin(∠ABC+∠BCP)/BPsin(∠ACB+∠CBP)同理 sin∠CBPb/sin∠ABPb =APsin(∠ACB+∠CAP)/CPsin(∠BAC+∠ACP) sin∠ACPc/sin∠BCPc =BPsin(∠BAC+∠ABP)/APsin(∠ABC+∠BAP) 注意到∠ABC+∠BCP+∠BAC+∠ACP =∠BCA+∠CAP+∠CBA+∠CBA =∠BCA+∠CBP+∠BAC+∠ABP=π,代入得 (sin∠BAPa/sin∠CAPa)*(sin∠CBPb/sin∠ABPb)*(sin∠ACPc/sin∠BCPc)=1 根据角元ceva逆定理知APa,BPb,CPc共点

不是很理解one 和 ones 有什么区别。

这“一个”对我来说太小,有大点的“一些这种东西”吗? 虽然前面的it是单数,但后面可以用单数也可以用复数。 比如: The cap is too small for me. Do you have bigger caps? 后面的Do you have bigger caps?=Do you have bigger ones? 当然用单数也可以的。

太网和FDDI网的工作原理和数据传输过程

以太网CSMA/CD载波监听/冲突检测,属于计算机网络以太网的工作类型,即在总线上不段的发出信号去探测线路是否空闲,如果不空闲则随机等待一定时间,在继续探测。 直到发出型号为止。 CSMA/CD工作原理 :在EtherNet中,传送信息是以“包”为单位的,简称信包。 在总线上如果某个工作站有信包要发送,它在向总线上发送信包之前,先检测一下总线是“忙”还是“空闲”,如果检测的结果是“忙”,则发送站会随机延迟一段时间,再次去检测总线,若这时检测总线是“空闲”,这时就可以发送信包了。 而且在信包的发送过程中,发送站还要检测其发到总线上的信包是否与其它站点的信包产生了冲突,当发送站一旦检测到产生冲突,它就立即放弃本次发送,并向总线上发出一串干扰串(发出干扰串的目的是让那些可能参与碰撞但尚未感知到冲突的结点,能够明显的感知,也就相当于增强冲突信号),总线上的各站点收到此干扰串后,则放弃发送,并且所有发生冲突的结点都将按一种退避算法等待一段随机的时间,然后重新竞争发送。 从以上叙述可以看出,CSMA/CD的工作原理可用四个字来表示:“边听边说”,即一边发送数据,一边检测是否产生冲突FDDI令牌环网的结构是组成一个环形,环形的一圈是主机,主机中存在一个令牌,由一号机向下传,每个主机只有在自已有令牌时才能向主线路中发数据。 1、令牌环网是一种以环形网络拓扑结构为基础发展起来的局域网。 虽然它在物理组成上也可以是星型结构连接,但在逻辑上仍然以环的方式进行工作。 其通信传输介质可以是无屏蔽双绞线、屏蔽双绞线和光纤等。 令牌环网的媒体接入控制机制采用的是分布式控制模式的循环方法。 在令牌环网中有一个令牌(Token)沿着环形总线在入网节点计算机间依次传递,令牌实际上是一个特殊格式的帧,本身并不包含信息,仅控制信道的使用,确保在同一时刻只有一个节点能够独占信道。 当环上节点都空闲时,令牌绕环行进。 节点计算机只有取得令牌后才能发送数据帧,因此不会发生碰撞。 由于令牌在网环上是按顺序依次传递的,因此对所有入网计算机而言,访问权是公平的。 令牌在工作中有“闲”和“忙”两种状态。 “闲”表示令牌没有被占用,即网中没有计算机在传送信息;“忙”表示令牌已被占用,即网中有信息正在传送。 希望传送数据的计算机必须首先检测到“闲”令牌,将它置为“忙”的状态,然后在该令牌后面传送数据。 当所传数据被目的节点计算机接收后,数据被从网中除去,令牌被重新置为“闲”。 令牌环网的缺点是需要维护令牌,一旦失去令牌就无法工作,需要选择专门的节点监视和管理令牌。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐