分布式基础-BASE理论

分布式基础-BASE理论
最新回答
清谷幽兰

2020-10-03 13:10:57

前言

在探讨关系型数据库时,事务和事务特性ACID常被提及。然而,当涉及到分布式共享数据系统时,我们不得不面对CAP理论的限制。为实现CP(一致性与分区容错性),我们不得不牺牲可用性;若追求AP(可用性与分区容错性),则一致性将受损。对大型应用而言,资金等严格一致性场景较少,因此多数选择AP,即在保留可用性与分区容错性的同时,允许一致性的柔性变动。这便是BASE理论的核心所在,它为我们在一致性与可用性之间寻找平衡提供了一种有效途径。

一 BASE理论

BASE理论由eBay工程师提出,旨在处理腔野互联缺圆洞网应用中一致性与可用性的权衡问题。其三大核心概念分别是:基本可用、软状态与最终一致性。

基本可用概念认为系统应该具备核心功能的正常运作,即使在用户量超出预期的情况下,也应通过延迟响应、流量削峰等策略来确保系统的核心服务不中断。

最终一致性则指数据最终会达到一致状态,虽然在某个时间点数据可能不完全一致,但对用户影响较小。以更新微博动态为例,部分用户可能暂时无法查看到更新,但最终所有用户都能看到更新的内容。

软状态指的是数据处于一种动态变化的状态,强调数据在特定时间点后达到一致性。最终一致性系统并不保证立即读取到最新数据,也不承诺具体时间读取最新数据,而是确保在一定时间内数据可用。

二 如何保障基本可用

系统过载是导致不可用的主要原因之一。为应对过载流量,我们可以通过流量控制手段来保障系统的可用性。

1. 削峰填谷:通过错开抢购时间、缓存用户请求等方式,分散系统压力,实现流量的削峰填谷。

2. 延迟响应:将用户请求缓存并逐步处理,避免短时间内大量请求压垮系统,实现系统基本可用。

3. 服务降级:在系统负载过高时,优先保证核心功能正常运行,通过降低非必要功能(如日志级别、图片分辨率)来减少系统资源消耗。

4. 过载保护:当系统无法处理额外流量时,系统会自动中断过时或随机丢弃请求,以确保基本可用性。

三 最终一致性

最终伏枯一致性系统通过多个副本确保数据可用性,网络延迟导致的副本不一致问题难以避免。在不严格要求一致性的场景中,采用最终一致性策略。

1. 写时修复:在写入数据时,若发生副本写失败,系统缓存并自动重试,从而加快达到最终一致性,性能最优。

2. 读时修复:在读取数据时同时读取多个副本,通过特定规则(如超过半数值)决定返回值,实现数据修复。

3. 异步修复:通过定时比较不同节点数据,发现不一致后进行同步修复,但性能较低。

四 总结

BASE理论在复杂互联网环境中提供了一种平衡一致性与可用性的策略。它通过实现基本可用性,最终达到系统数据的一致性,成为现代NoSQL系统设计的重要理论基础。