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

详解不同场景下的服务降级手段

通俗简洁先讲一遍,帮助大家快速理解:

服务降级就是在系统扛不住的时候,把非核心功能先 “关掉” 或 “简化”,保障核心业务能跑。这张图通俗来说:

  • 自动化运维:要么系统自动判断(比如服务超时、老失败、故障了、请求太多)就降级;要么人工提前手动开关(比如大促前先把非核心功能关了)。
  • 功能维度:读数据的地方(比如商品页非核心信息)可以降级;写数据的地方(比如扣库存、用户评价)把同步操作改成异步,减轻压力。
  • 系统层次:分三层开关,页面上用 JS 关功能、接入层(如 Nginx)拦请求、应用内部配开关,层层把控降级。

总结就是:从自动 / 手动开关、读写功能、系统分层三个角度,灵活给系统 “减负”,确保核心业务不崩。

详解:

不同场景下的服务降级手段,以下是分维度解读:

一、自动化运维维度

该维度下的服务降级通过 “开关” 控制,分为自动开关降级和手动开关降级两类:

  • 自动开关降级
    • 超时:调用远程非核心服务时,若响应过慢达到设定的超时时间或重试次数后,自动停止调用该服务。例如调用一个非核心的营销数据服务,超时后直接降级,保障核心流程不受影响。
    • 统计失败次数:针对不稳定的服务(如外部机票服务),当调用失败次数超过容忍度时自动降级。同时可通过异步线程探测服务是否恢复,恢复后自动取消降级。
    • 故障:若远程服务直接挂掉,自动触发降级,可使用默认值、提前准备的内容或缓存数据来兜底。比如电商系统的物流查询服务故障,可返回 “物流信息暂不可查” 的默认提示。
    • 限流:多见于高并发场景(如秒杀系统),当请求量达到限流阈值时,后续请求自动降级,可将用户导流到排队页面或直接提示缺货。
  • 手动开关降级用于系统未出现问题但需主动降级的场景,通过人工可控的开关实现。例如促销活动前提前关掉非核心的推荐服务;新功能灰度测试时,若不符合预期可通过开关切回老服务。开关可存储在配置文件、数据库、Redis/Zookeeper 等位置,分布式系统中通常会搭建配置中心(如 ZooKeeper、Nacos、Consul)进行集中管理,还提供 Web UI 界面方便操作。

二、功能维度

从 “读写操作” 的角度划分服务降级策略:

  • 读服务降级针对非核心的读数据场景降级。以电商商品详情页为例,页面中的商家信息、推荐信息、热销榜等非核心数据,在系统异常时可进行降级处理。甚至在促销活动前,可将整个页面静态化,最大程度降级读服务。
  • 写服务降级写服务通常很关键,降级思路是同步写转异步写。以扣减库存为例:
    • 正常设计有两种方案:方案 1 是数据库扣减成功后更新 Redis 缓存;方案 2 是先扣减 Redis 缓存,同步扣减数据库,失败则回滚 Redis 缓存。
    • 当数据库性能不足时,采用异步方式:先扣减 Redis 缓存,同时向队列发送扣减数据库库存的消息,异步执行数据库扣减以实现最终一致性。类似地,用户评价、评价后奖励等写操作,在流量过大时都可从同步写转为异步写。

三、系统层次维度

该维度采用多级降级,从页面到接入层再到应用层分层控制:

  • 页面 JS 降级开关:通过页面中的 JS 脚本部署开关,控制页面功能的降级时机。比如某活动页面的互动功能,可通过 JS 开关在流量高峰时临时关闭。
  • 接入层降级开关:在请求入口(如 Nginx)进行控制,可实现秒级切换、增量式切换(按机器组开启)、细粒度服务开关、超时自动降级等。例如通过 Nginx 直接拦截部分非核心请求,保障核心请求的处理能力。
  • 应用层降级开关:在应用内部配置功能开关,根据实际情况自动或人工降级。比如某电商应用的 “用户画像分析” 非核心功能,可通过应用内开关在系统压力大时关闭。

综上,这张图通过三个维度的拆解,完整覆盖了服务降级的各类场景和实现手段,帮助技术人员在不同业务和技术场景下,精准选择合适的服务降级策略,保障系统的稳定性和核心流程的可用性。

http://www.dtcms.com/a/578813.html

相关文章:

  • BuildingAI 充值中心页面详细开发计划
  • 网站封了给个能用的朗读者外国人做的汉字网站
  • C语言中的sizeof和strlen
  • Y迷宫刺激器 MG-3S型Y迷宫刺激器
  • 弹幕网站开发代码公众号网页源码
  • 微信外链网站开发网络推广运营推广
  • 矩阵的运算(二)
  • 专业的单位网站开发开发企业管理网站建设
  • 泰安网站建设制作电话号码机械设备怎样做网络推广
  • 移动硬盘灯亮但不读取无法识别的解决方法
  • 制作销售网站有哪些规划一个电子商务网站
  • flash+xml地图网站奉贤做网站价格
  • 微信小程序开发:详细解读onLoad生命周期函数
  • 太平洋手机上海网站制作 优化
  • 使用chrony配置时间同步
  • 管理公司网站一般做什么做网站需要源码
  • 品牌官方网站建设中国防疫政策马上要变化了
  • wrk 压测工具教程(Ubuntu22 实战版)
  • 郑州金水区网站建设动漫双人互动模板
  • 网站优化推广seo公司上海企业网站建设价格
  • Dataround非结构化数据同步
  • 29. HTTP
  • 人工智能+医疗卫生:如何加速AI医疗创新从实验室到临床的转化
  • 红酒公司网站建设手机网站比例尺寸
  • A 的 B 次方(信息学奥赛一本通- P1616)(快速幂模版题比较简单)
  • 用做网站使用的图片文化传媒公司广告宣传
  • google属于搜索引擎类网站.软件开发项目经理的工资一般多少
  • css学习9
  • 校园文化建设网站素材wordpress后台主题插件
  • 网站建设算什么行业口碑营销的策略