当前位置: 首页 > article >正文

计算架构模式之接口高可用

接口高可用整体框架

接口高可用主要应对两类问题:雪崩效应和链式效应。

雪崩:当请求量超过系统处理能力之后,会导致系统性能螺旋快速下降,本来系统可以处理1000条,但是当请求量超过1200的时候,此时性能会下降,然后处理速度越来越慢,系统表现越来越差,问题越来越严重。

链式:一个故障会引起后续一连串的故障。防止链式效应就是出了故障之后不要让故障扩散,不要因为A系统出了故障,B系统也由于A系统出现故障导致出现故障,最后所有的系统全部都出现故障。

接口高可用架构本质上是“丢车保帅”策略,业务或者用户体验会部分有损!也就是说任何情况下都无法保证任何用户不受影响。

限流

请求端限流:比如摇一摇本身就是概率事件,可以直接在请求端进行限流。或者说秒杀也可以。

限流具体实现方式

限流算法

固定 & 滑动 时间窗

限流算法-漏桶

漏桶算法变种-写缓冲(Buffer)

因为读可以从发,写不可以。写还得从新输入,体验不好。

限流算法-令牌桶

突发流量的时候由于令牌桶的速度无法及时调整,那么就会导致请求丢失

Java 限流的漏桶算法简单示例

太短的话,队列就直接给拦掉了

这类框架可以通过钩子开发(拦截处理器)来实现自定义的限流

排队

排队的架构示意图

轮询排队结果,轮询到了就可以进行实际的业务请求了。

排队的具体实现方案示例

1号店双十一秒杀排队

降级

降级架构实现

降级模块下发指令,告诉模块,哪个接口进行降级

熔断

比如A服务一分钟内出现10次故障,那么就不在调用了

熔断架构实现

本节思维导图


http://www.kler.cn/a/306003.html

相关文章:

  • HTTP 客户端怎么向 Spring Cloud Sleuth 传输跟踪 ID
  • 基于Java Web的传智播客crm企业管理系统的设计与实现
  • React的基础API介绍(二)
  • WebAssembly在现代Web开发中的应用
  • 数据挖掘(九)
  • 软件工程概论项目(二),node.js的配置,npm的使用与vue的安装
  • OpenAI发布o1,首个具备‘推理’能力的模型
  • JavaScript事件处理和常用对象
  • Git+Jenkins 基本使用(Basic Usage of Git+Jenkins)
  • 【C++】STL--string(上)
  • QEMU的时间
  • uniapp的苹果全屏播放再退出会导致页面字体变大解决方法
  • 「数组」十大排序:精讲与分析(C++)
  • C++: 二叉树进阶面试题
  • Leetcode 验证回文串
  • kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件
  • PointNet2(一)分类
  • Qt:懒汉单例(附带单例使用和内存管理)
  • 气压测试实验(用IIC)
  • Superset二次开发之源码DependencyList.tsx 分析
  • 828华为云征文 | 云服务器Flexus X实例:部署 Gitea,拥有自己的Git仓库,管理本地代码
  • 微服务之间的安全通信
  • Xorbits Inference(Xinference):一款性能强大且功能全面的大模型部署与分布式推理框架
  • TCP/IP网络模型分层
  • PCL 点云随机渲染颜色
  • 3285、找到稳定山的下标