week6 作业 1
请简述 CAP 原理(以下内容来源于网络)。
说到CAP原理,就不得不提分布式系统,CAP原理也称CAP原则,是分布式系统的三个指标,指在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP原则值得是这三个要素最多只能同时实现两点,不能做到三者兼顾.
一致性:在分布式系统中,所有节点在同一时刻的数据完全一致,可以理解为在某条记录发生更新后,再去读这条记录时,必须返回修改后的记录;
可用性:在整个系统中一部分节点发生故障后,系统整体还能响应客户端的读写请求,即系统只要收到用户的请求,服务器就必须给出响应。
分区容错性:大多数的分布式系统都分布在多个子网络,每个子网络就叫做一个区。分区容错的意思是,以实际效果而言,区间通信可能失败,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区,必须就当前操作在C和A之间做出选择。
CAP理论得精髓就是说在分布式存储系统中,最多只能实现上面的两点。而由于网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡。
为什么一致性和可用性不能同时成立?
假设某个系统中有两个节点V1和V2,如果要保证V1的一致性,那么V2必须在写操作时,锁定V1的读操作和写操作,只有在数据同步后,才能重新开放读写,锁定期间,V1不能读写,不满足可用性;
如果要保证V1的可用性,那就不能锁定V1,所以一致性也不成立。
综上所述,V1无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到一致性。
版权声明: 本文为 InfoQ 作者【倩】的原创文章。
原文链接:【http://xie.infoq.cn/article/746012d38b27921b849d9b5c0】。未经作者许可,禁止转载。
评论