网站建设评判,wordpress轮播图代码,大同住房和城乡和建设网站,小程序项目描述怎么写转载自 分布式系统架构常识#xff1a;CAP理论什么是CAP理论#xff1f;
2000年7月#xff0c;加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP#xff0c;之后CAP理论正式成为分布式计算…转载自 分布式系统架构常识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
这里所说的放弃一致性并不是完全放弃数据一致性而是放弃数据的强一致性。即放弃了同一时刻的数据一致性而保留数据的最终一致性。
以网络购物为例对只剩下一件库存的商品如果同时接受到了两份订单那么较晚的订单将被告知商品告罄。
通常情况下很多分布式服务系统都是采用该方案保证可用性性分布式服务因为某些分区服务发生问题先容忍最终通过一些折中的方法达到最终数据一致性。