简述
我们上篇文章介绍了CAP
原则,如果是分布式系统,只能选择一致性或者是可用性和分区容错性配合。但是我们可以根据业务特点,使用自身方式实现一致性。今天我们来学习下BASE理论。
什么是BASE
BASE理论是Basically Available(基本可用),Soft State(软状态)和Eventually Consistent(最终一致性)三个短语的缩写。
BASE
理论是对CAP
中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。比如可以通过恢复数据一致性,补偿分区发生期间的错误。
BASE理论内容
基本可用
基本可用是当系统出现了某些故障的时候,还能维持使用。相比较正常的系统而言,有以下两点:
响应时间上的损失
比如本来0.5秒可以返回给用户结果,现在用了1秒。功能上的损失
比如为了保护系统实现的降级操作。
软状态
软状态是指允许系统中的数据存在中间状态,此状态不会影响系统的整体可用性,即允许系统在多个不同节点的数据部分存在数据延时。
最终一致性
最终一致性是指比如上面的软状态,系统数据不可能一直是软状态,在特定时间后,需要保证所有副本的数据保持一致性,从而达到数据的最终一致性。这个时间期限取决于网络延时、系统负载、数据复制方案设计等等因素。
实际上,不只是分布式系统使用最终一致性,关系型数据库在某个功能上,也是使用最终一致性的。比如备份,数据库的复制过程是需要时间的,这个复制过程中,业务读取到的值就是旧的。当然,最终还是达成了数据一致性。这也算是一个最终一致性的经典案例。
总结
BASE理论是面向了分布式系统,用于解决CAP原则问题。他不像传统的ACID原则那种强一致性,BASE理论主要是允许在一段时间内数据可以不一致,但是最终达到一致状态。在设计中,ACID和BASE理论往往又会结合使用。
评论区