丽江北京网站建设/百度高级搜索入口
上一篇文章我简单介绍了一下什么是CAP理论,本篇文章讲解一下随着技术的演变,CAP理论是如何发展为BASE理论的。
CAP理论回顾
首先我们回顾一下CAP理论,CAP理论指得是分布式系统发生网络等故障时,不同节点之间无法同步数据,此时无法保证所有节点都能返回一致的数据。
解决方案是要么保证数据的一致性,此时未同步数据的节点不返回数据,即不可用;
要么保证系统的可用性,即不同节点返回数据可能不一致;
BASE理论
随着现代系统复杂度的提高,只实现一致性或可用性已经无法很好的满足用户的需要;并且随着一些技术的进步,一致性和可用性也并非无法同时使用,此时就提出了BASE理论。
BASE理论是基本可用(Basically Available )、软状态(Soft state)和最终一致性(Eventually consistent )的简称。
BASE理论是指:通过特殊的手段来权衡一致性和可用性,使系统能够满足基本可用(Basically Available )和最终一致性(Eventually consistent )。
基本可用
指的是当系统发生故障时,牺牲一部分的可用性,来保证系统能够基本运行;相比正常的系统,区别可能是响应时间变长、服务降级等。
例如:系统响应时间由正常的0.1s提升至2s;或者由正常的服务响应降级到体验感稍差的服务页面。
软状态
系统中不同节点的状态可以是暂时不一致的,不要求实时同步,这给系统带来了很大的灵活性和可用性。
最终一致性
CAP理论中的一致性指的是强一致性,即修改一个节点中的数据之后,查询任意节点的数据都是最新的数据;
而最终一致性是指:修改一个节点的数据之后,经过一段时间,查询任意节点的数据都是最新的数据;在这段时间中,系统处于软状态,查询的数据可能是旧数据也可能是新数据;但是过了这段时间,系统处于硬状态时,就要保证各节点的强一致了。
实现最终一致性的方式:消息队列、定时任务、人工补偿等;
结论
总的来说,BASE理论是通过对一致性和可用性的权衡来使系统的功能更广泛,并且提高了用户的使用体验。