分布式系统架构常识: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

这里所说的放弃一致性,并不是完全放弃数据一致性,而是放弃数据的强一致性。即放弃了同一时刻的数据一致性,而保留数据的最终一致性。

以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。

通常情况下,很多分布式服务系统都是采用该方案,保证可用性性,分布式服务,因为某些分区服务发生问题,先容忍,最终通过一些折中的方法达到最终数据一致性。

推荐阅读

去BAT面试完的Mysql面试题总结(55道,带完整答案)

阿里高级Java面试题(首发,70道,带详细答案)

2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案

Spring面试题(70道,史上最全)

通往大神之路,百度Java面试题前200页。

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。


DMT(Discrete Multi-Tone,离散多音)。DMT采用多载波调制技术,可用频段划分为多个(典型为256个)子信道,每个子信道的带宽为4kHz,对应不同频率的载波,并根据子信道发送数据的能力将数据分配给各子信道,不能载送数据的子信道被关掉。DMT用离散快速傅立叶变换进行编解码,DMT尝试可能的最高速率,根据线路的噪声和衰减特性分配数据。目前,DMT已成为 ANSI制订的ADSL的调制标准——T1.413。 CAP(Carricerless Amplitude/Phase Modulation, 无载波调幅调相)。 CAP 是AT&T提出的调制方式,是一种无载波的正交幅度调制(QAM),数据信号在发送前被压缩,然后沿电话线发送,在接收端重组。CAP的主要优点为:载波频率可变,在一个频率周期或波特内传输2到9位二进制数据,因此在相同的传输速率下,占用更少的带宽,传输距离更远。 现在比较成熟的ADSL标准有两种——G.DMT和G.Lite。G.DMT是全速率的ADSL标准,支持8Mbps/1.5Mbps的高速下行/上行速率,但是,G.DMT要求用户端安装POTS分离器,比较复杂且价格昂贵;G.Lite标准速率较低,下行/上行速率为1.5Mbps/512Kbps,但省去了复杂的POTS分离器,成本较低且便于安装。就适用领域而言,G.DMT比较适用于小型或家庭办公室(SOHO),而G.Lite则更适用于普通家庭用户。 由于CAP信号传输占用全部信道带宽,所以频域和时域噪声都会对它造成影响。DMT的每个很窄的子信道频带内的电缆特性可以近似认为是线性的,因此脉冲混叠可以减到最低程度。在每个子信道内传送的比特率可以按该信道内信号和噪声的大小自适应地变化,故DMT技术可自动避免工作在干扰较大的频段。   DMT和CAP技术都可以实现速率的自适应调整,这就是RADSL。不同的是DMT可以做到从64kbps开始以32kbps的间隔平滑递增。而CAP只能从640kbps开始作较粗糙的调整。   CAP的优点是处理较DMT简单,故时延小,芯片功耗低、其商品化也走在DMT方式之前。DMT的优点是抗噪声性能比CAP好。两种技术互不兼容,设备之间无法互连,影响了ADSL的推广。不过现在市场上的产品基本上以CAP调制技术为基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值