一期二班 - 吴水金 - 第六课作业
什么是CAP原则?
有别于关系型数据库系统,分布式。数据库存储系统由于其软件和硬件架构的物理特性,都必须遵循CAP原则。CAP原则包含三个方面的特性:
C:一致性(Consistency)
A:可用性(Availability)
P:分区耐受性(Partition tolerance)
一致性
在分布式数据库系统中,一个数据库系统由多台数据库服务器共同对外提供服务,为实现在某台服务器意外宕机的情况下仍能保证系统的高可用,通常会采用主从复制的方式将写人的数据在多台服务器上进行备份。一致性指的是当用户查询某条记录时,所有服务器上关于该记录的数据都是一致的,如果不一致,则不返回数据给用户。
可用性
在一个数据库集群中,如果某个节点或某几个节点宕机,系统仍然能够响应用户正常的读写操作。此特性称为可用性。
分区耐受性
在分布式数据库系统中,数据通过网络进行同步。如果因为网络故障,在有限的时间内无法通过同步保证各服务器节点的数据的一致性,那么此时我们认为数据库系统出现了分区。分区即是说,出现了数据不一致的节点,这些节点可以称为区。在这种情况下,系统要么满足一致性,要么满足可用性,而无法同时都满足。
BASE原则
由于CAP原则的三个特性无法同时满足,因此在设计分布式数据库系统时就必须做出权衡,什么时候该偏向一致性,什么时候该多考虑可用性。BASE原则即是人们在权衡和考量之后在业界较为认可的实现CAP的基本原则。包含三个方面:Basically Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)。
Basically Available(基本可用)
如果集群中的某台服务器宕机,并不影响系统整体对外提供服务。系统将该服务器处理的请求分摊到其他服务器节点上,这样可能增加其他服务器节点的压力,造成响应时间延长。但是保证系统基本可用。
Soft state(软状态)
即中间状态,由于网络延时,数据库节点之间的同步允许一定的延时,在此期间并不影响系统对外提供服务。
Eventually consistent(最终一致性)
各中从服务器中的数据备份,由于存在同步延时,并不要求各服务器之间实时同步,这也不现实。而经过一系列的同步操作后,系统最终能达到数据一致性。
版权声明: 本文为 InfoQ 作者【吴水金】的原创文章。
原文链接:【http://xie.infoq.cn/article/937e557e21a8db29677bc3bc5】。文章转载请联系作者。
评论