CAP 原理之个人见解
CAP原理
个人见解:所谓CAP,是在互联网分布式系统里,对数据的可达性和正确性的一种客观性性描述。由于分布式系统会将数据存储在不同服务器上,这就会造成同一份业务数据可能会分布在不同的服务器中。对于数据的读取,我们预期读取的是一份正确的数据,但这在分布式系统中可能会面临一些问题。多份数据在保证了数据可达性的同时可能会干扰了数据的正确性。因此我们客观的用CAP原理描述这种现象。
C-consistency 一致性:我们在读取数据时,返回最近一次写入的数据或者返回错误,而不是返回过期数据。
A-availability 可用性:在请求获取数据时,应该得到一个响应,而不是失去响应或返回错误,但不需保证返回的数据时最近一次写入的。调用者不会接收到异常,只是得到的数据可能不是最新的。
P-partition tolerance 分区耐受性:由于网络原因,造成部分服务器节点之间的消息丢失或延迟,系统依然是可操作的。
CP和AP,在系统故障时,只能实现其一,无法同时实现。
在分布式系统中,分区是保证系统高可用的必须条件,但是在满足高可用的同时,却可能牺牲了数据的一致性。对于一些要求强一致性的场景,就可能要牺牲高可用,因为请求返回必须是最新写入数据,在系统故障时,无法获取最新写入数据,也不能返回过期数据,所以只能返回异常。对于非强一致性的场景,在系统故障时,无法读取最新数据,但可以返回过期数据,这是保证了高可用,但却牺牲了数据的一致性。
评论