BASE

BASE #

Basically Available, Soft state, Eventual consistency

BASE 理论是 CAP 理论中的 AP 的延伸,是对互联网大规模分布式系统的实践总结,强调可用性。

基本可用 #

  • 流量削峰
    • 在不同的时间,出售不同区域的票,将访问请求错开,削弱请求峰值
  • 延迟响应
    • 在春运期间,自己提交的购票请求,往往会在队列中排队等待处理,可能几分钟或十几分钟后,系统才开始处理,然后响应处理结果
  • 体验降级
    • 比如用小图片来替代原始图片,通过降低图片的清晰度和大小,提升系统的处理能力。
  • 过载保护
    • 把接收到的请求放在指定的队列中排队处理,如果请求等待时间超时了(假设是 100ms),这个时候直接拒绝超时请求;再比如队列满了之后,就清除队列中一定数量的排队请求,保护系统不过载,实现系统的基本可用。

最终的一致 #

  • 读时修复:在读取数据时,检测数据的不一致,进行修复。
    • 比如 Cassandra 的 Read Repair 实现,具体来说,在向 Cassandra 系统查询数据的时候,如果检测到不同节点的副本数据不一致,系统就自动修复数据。
  • 写时修复:在写入数据,检测数据的不一致时,进行修复。
    • 比如 Cassandra 的 Hinted Handoff 实现。具体来说,Cassandra 集群的节点之间远程写数据的时候,如果写失败就将数据缓存下来,然后定时重传,修复数据的不一致性。
    • 写时修复不需要做数据一致性对比,性能消耗比较低,对系统运行影响也不大,推荐在实现最终一致性时优先实现这种方式。
  • 异步修复:这个是最常用的方式,通过定时对账检测副本数据的一致性,并修复。


本文访问量

本站总访问量

本站总访客数