0
点赞
收藏
分享

微信扫一扫

BASE理论(基本可用策略+ 最终一致性实现)


目录

  • ​​实现基本可用的几个策略​​
  • ​​1、流量削峰(不同地区售票时间错峰出售)​​
  • ​​2、延迟响应,异步处理(买票排队,基于队列先收到用户买票请求,排队异步处理,延迟响应)​​
  • ​​3、体验降级(看到非实时数据,采用缓存数据提供服务)​​
  • ​​4、过载保护熔断/限流,直接拒绝掉一部分请求,或者当请求队列满了,移除一部分请求,保证整体系统可用)​​
  • ​​5、 故障隔离(出现故障,做到故障隔离,避免影响其他服务)​​
  • ​​6.、弹性扩容(基于Metric和Monitor实现系统态势感知,做到弹性伸缩)​​
  • ​​实现最终一致性的具体方式​​
  • ​​1、读时修复​​
  • ​​2、写时修复​​
  • ​​3、异步修复​​
  • ​​使用BASE理论​​
  • ​​总结​​
  • ​​reference​​


BASE理论是CAP理论中AP的延申,强调可用性。它的核心是基本可用(Basically Available)和最终一致性(Eventually consistent)

实现基本可用的几个策略

基本可用本质是一种妥协,也就是出现节点故障或者系统过载时,通过牺牲非核心功能的可用性,保障核心功能的稳定运行。
实现基本可用的几个策略:

1、流量削峰(不同地区售票时间错峰出售)

以订票系统设计为例,在春运期间,开始售票前后会出现及其海量的请求峰值。
可以在不同的时间,出售不同区域的票,将访问请求错开,削弱请求峰值。

2、延迟响应,异步处理(买票排队,基于队列先收到用户买票请求,排队异步处理,延迟响应)

还以订票系统为例。用户提交购票请求后,往往会在队列中排队等待处理,可能几分钟或十几分钟后,系统才开始处理,然后响应处理结果。

3、体验降级(看到非实时数据,采用缓存数据提供服务)

以互联网系统为例,若出现网络热点事件,产生了海量的突发流量,系统过载,大量图片因为网络超时无法显示,那么可以用小图片代替原始图片,降低图片的清晰度和大小,提升系统处理能力。

4、过载保护熔断/限流,直接拒绝掉一部分请求,或者当请求队列满了,移除一部分请求,保证整体系统可用)

把接收到的请求放在指定的队列中排队处理,如果请求等待时间超时,这时直接拒绝超时请求;如果队列满了之后,就清除队列中一定数量的排队请求,保护系统不过载,实现系统基本可用。

5、 故障隔离(出现故障,做到故障隔离,避免影响其他服务)

6.、弹性扩容(基于Metric和Monitor实现系统态势感知,做到弹性伸缩)

实现最终一致性的具体方式

最终一致性是指:系统中所有的数据副本在经过一段时间的同步后,最终能够达到一个一致的状态。也就是说在数据一致性上存在一个短暂的延迟。
实现最终一致性有几种具体的方式:

1、读时修复

在读取数据时,检测数据的不一致,进行修复。
如Cassandra 的 Read Repair,在Cassandra 系统查询数据的侍好,如果检测到不同节点的副本数据不一致,系统就自动修复数据

2、写时修复

在写入数据时,检测数据的不一致,进行修复,主要通过失败重试。
如Cassandra 的Hinted Handoff实现,Cassandra 集群的节点之间远程写数据的时候,如果写失败就将数据缓存下来,然后定时重传,修复数据的不一致。

3、异步修复

通过定时对账检测副本数据的一致性,并修复。

写时修复不需要做数据一致性比对,性能消耗较低,推荐使用。
在实现最终一致性的时候,推荐同时实现自定义写一致性级别(比如 All、Quorum、One、Any)让用户可以自主选择相应的一致性级别。

使用BASE理论

DATA节点的核心功能是读和写,所以基本可用是指读和写的基本可用。可以通过分片和多副本,实现读和写的基本可用。即将同一业务的数据先分片,然后以多份副本的形式分布在不同的节点上。保障多节点多副本集群。
BASE理论(基本可用策略+ 最终一致性实现)_基本可用
为了达到最终一致性,通过写时修复和异步修复。并且实现自定义写一致性级别,用户在写数据的时候,可以根据业务数据的特点设置不同的写一致性级别。

总结

ACID 理论是传统数据库常用的设计理念,追求强一致性模型。BASE 理论支持的是大型分布式系统,通过牺牲强一致性获得高可用性。BASE 理论在很大程度上,解决了事务型系统在性能、容错、可用性等方面痛点。BASE 理论在 NoSQL 中应用广泛,是 NoSQL 系统设计的事实上的理论支撑。
对于任何集群而言,不可预知的故障的最终后果,都是系统过载。如何设计过载保护,实现系统在过载时的基本可用,是开发和运营互联网后台的分布式系统的重中之重。

reference

《分布式协议与算法实战.韩健》


举报

相关推荐

0 条评论