分布式系统CAP理论的理解

CAP关注的是多节点互联场景下进行数据的读写操作,相互连接并且共享数据的多节点集合构成的分布式系统是CAP理论的前提。

C指的是Consistency(一致性),A指的是Availability(可用性),P指的是Partition Tolerance(分区容错性)。

分区容错性是指当发生网络分区,系统可以继续履行职责。分区现象可能是丢包、拥塞、亦或者是连接中断,当系统的部分节点出现这些情况时,不会影响其他节点。

因为探讨的是分布式环境,网络情况不可能是百分百正常的,所以P是必须满足的。

一致性是指客户端读取的数据一定是最新写入的结果。 数据库写操作在事务提交之前,客户端是读不了的,事务执行失败会自动回滚,保证客户端读取的是正常的最新数据,这里的一致性是从客户端角度来阐述的,因为事务在执行过程当中,系统处于不一致的状态,各节点之间的数据不可能完全一致。比如有A、B、C三个节点,A先向B同步数据,这个时候C和AB的数据并不一致。

可用性是指非故障的节点在合理的时间内返回合理(非错误和超时)的结果。比如某个请求合理的响应时间是在1秒内返回,超出1秒后返回就是不合理;再比如某请求的响应结果正常的错误码是200,100,实际响应结果是404就是不合理。

在满足P的情况下,如果发生网络分区,只能选择C或者A之间的一种,不可能同时满足三者。

假设有A、B两个节点,前一刻两个节点里的数据都是x,后一刻A节点写入了最新数据y,这时A节点把数据y同步到B节点的时候发生了网络分区。

如果要保证Consistency,那么客户端在请求B节点数据的时候,应该提示系统发生了错误,从而舍弃了Availability。

如果要保证Availability,那么客户端在请求B节点数据的时候,直接返回保存的数据即可,但这样也就舍弃了Consistency。

由此论证在分布式系统(相互连接并且共享数据的多节点集合)环境下,CAP同时只能满足CP或者AP。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值