大厂服务降级规范

优质博文:IT-BLOG-CN

服务降级,是指在系统承受较大负载时,根据业务的紧急性和流量情况,对部分非核心或不紧急的服务采取延迟、简化或暂停处理的策略,从而释放系统资源,确保核心业务的高效稳定运行。

为何需要服务降级?
系统资源有限,而业务需求与流量时常波动。特别是在活动或节假日等高峰期,流量可能突增,给系统带来巨大压力。若不进行适当处理,可能导致整体性能下降,甚至核心业务宕机。服务降级正是为了在这种情境下,通过牺牲部分非核心业务,保障核心业务的稳定运行。

何时应考虑服务降级?
服务降级主要基于系统负载和业务实际运行情况。以下情况通常需要考虑降级:
【1】系统负载过高,影响业务正常运行。
【2】预期或非预期的流量高峰,如活动、节假日等。
【3】部分业务功能出现严重问题,导致生产损失。
【4】为减轻上下游系统压力,需要协助降级。

服务降级前需做哪些准备?
为确保降级过程顺利,需提前进行以下准备:
【1】清晰的模块和层级划分:按业务或功能划分独立模块,支持开关控制,便于快速调整;
【2】区分核心与非核心业务:对业务模块进行优先级评估,确保降级时能够准确判断;
【3】设定降级策略与预案:针对不同业务场景,制定降级策略,并准备相应的预案和演练
【4】完善日志与监控:记录降级操作,便于事后分析;同时监控降级效果,确保核心业务稳定。

服务降级的类型有哪些?
服务降级可分为多种类型:
【1】自动降级与人工降级:根据触发方式的不同,可分为自动根据系统状态触发的降级和人工手动触发的降级。
【2】开关降级、限流降级与熔断降级:根据实现方式的不同,可分为开关降级、限流降级和熔断降级。
         ☑️ 开关降级:通过关闭部分服务的开关实现。
         ☑️ 限流降级:通过限制流量来保护系统。
         ☑️ 熔断降级:在下游服务出现问题时,主动断开连接,避免故障扩散。
【3】分级降级:根据业务的重要性和预警等级,采取不同级别的降级措施,如黄色预警时降级低优先级非核心业务,红色预警时降级所有非核心业务。

降级策略

业务分级: 为了更有效地管理系统的计算资源和应对潜在的降级需求,我们根据业务消耗的计算资源和订单占比进行分级。以下是业务分级的详细信息:

业务耗时计算资源订单占比评估等级
A15%1%次要任务
B30%9%次要任务
C30%20%重要任务
D25%70%关键任务

当系统面临性能压力或需要进行降级处理时,我们可以根据业务的评估等级,从低到高进行降级处理,优先保障关键业务的稳定运行。

服务限流

服务限流是保障服务稳定运行的重要策略,它通过设定服务负载的阈值,对超过该阈值的流量进行拒绝,从而避免服务因流量过载而崩溃。我们的SOA框架支持以下四种限流粒度(所有限流策略均针对单机服务端的访问次数进行限制,非服务集群层面):

功能描述
服务限流限定服务端所有操作在10s内可被访问的最大次数,不区分调用方
操作限流限流服务端特定操作在10s内可被访问的最大次数,不区分调用方
SERVERID限流限定单个Client应用ID在10s内可被访问的最大次数,不区分具体操作
IP限流限定单个Client IP在10s内可被访问的最大次数,不区分具体操作

此外,框架还提供了服务熔断功能,通过检测服务处理的错误率(包括超时和错误),当错误率达到一定阈值时,自动触发熔断机制,保护服务免受进一步损害。

延迟处理策略

延迟处理是系统负载过高时不足以处理全量业务,同时关键业务不容忍有损的情况下,我们可以根据业务的缓急程度,优先处理紧急的业务,对不紧急的业务延迟处理。

案例:机票大量退票时,应当把远期出行的订单延迟处理,优先保障当天起飞的订单正常退票,避免问题订单产生。

降级恢复策略

恢复前的准备:
【1】降级已达预期效果,核心业务已稳定运行一段时间,系统各项指标正常。
【2】与相关依赖方(如上下游系统)沟通,确保各方已完成业务恢复的准备工作。

恢复的步骤:
【1】根据降级操作日志和时间线,制定详细的恢复计划。
【2】评估恢复计划的可行性,预测各步骤的效果和影响。
【3】逐步执行恢复计划,每个步骤之间设置观察期,结合监控数据评估恢复效果。
【4】如遇异常情况,及时回退相关操作,并重新评估恢复流程。

降级需要注意哪些事项?
【1】严格控制降级权限,避免误操作带来的不必要损失。
【2】对业务的重要性和影响进行深入分析,确保降级决策的合理性和有效性。
【3】降级后需密切关注系统监控数据,及时评估降级效果并进行调整。
【4】系统恢复正常后,需按照降级操作日志逐步恢复各项功能。
【5】定期审查和更新降级配置及预案,确保其与实际业务需求保持一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【火山引擎】调用火山大模型的方法 | SDK安装 | 配置 | 客户端初始化 | 设置

豆包 (Doubao) 是字节跳动研发的大规模预训练语言模型。 目录 1 安装 2 配置访问凭证 3 客户端初始化 4 设置地域和访问域名 5 设置超时/重试次数 1 安装 通过pip安装PYTHON SDK。 pip install volcengine-python-sdk[ark] 2 配置访问凭证 获取 API Key 访问凭证具体步…

docker容器运行一段时间提示Failed to initialize NVML: Unknown Error

情况描述 服务器使用docker启动容器。启动以后一切正常也能跑程序。但是,在运行一段时间(2天左右不等),会发现gpu掉了。输入nvidia-smi提示 Failed to initialize NVML: Unknown Error 主要发生条件是,docker启动的…

Oracle-19g数据库的安装

简介 Oracle是一家全球领先的数据库和云解决方案提供商。他们提供了一套完整的技术和产品,包括数据库管理系统、企业级应用程序、人工智能和机器学习工具等。Oracle的数据库管理系统是业界最受欢迎和广泛使用的数据库之一,它可以管理和存储大量结构化和…

Canmv k230 C++案例1——image classify学习笔记 初版

00 简介 用C编写代码的比mircopython要慢很多,需要编译开发环境,同时使用C更接近底层,效率利用率应该也是更高的,就是需要学习更多的内容,因为从零开始因此比较比较耗时。 注:以下为个人角度的理解&#x…

C#使用HslCommunication程序库快速创建MQTT客户端,实现连接、订阅主题、发送信息

说明: HslCommunication 这个通讯库是非常强大的,其稳定性非常可靠,虽然对于我个人来说在某些功能上配和项目还不算超级完美,但是够用 这个库可以在网上下载。 下面是MQTT客户端的完整的代码 using HslCommunication; using HslCommunicati…

科技云报到:云服务的中场战事,从AI应用开始

科技云报到原创。 从去年的大模型之战,到今年的AI应用之争,云服务正在迈入全新的发展阶段。AI这个杠杆将各家厂商的竞争策略更向前推进了一步。 “云AI”能够孵化出多少可能?在业界眼中,“云AI”则意味着新的悬念:云计…

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 文章目录 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数KfRaiseIrql 函数 KfRaiseIrql 函数 /*********************************************************************** NAME …

Python网络爬虫

随着互联网的迅猛发展,数据成为了新的“石油”。人们对于信息的需求日益增涨,尤其是在市场分析、学术研究和数据挖掘等领域。网络爬虫作为一种自动提取网络数据的技术,因其强大的能力而备受关注。而Python,凭借其简洁的语法和丰富…

探索极简计算的新边界:从Uxn虚拟机看未来编程生态

越来越多的开发者追求复杂度和功能性的极致,然而,有一个小众的编程社区选择了截然不同的道路——极简主义。Uxn虚拟机便是这一思潮的代表之一。它通过简洁的指令集和有限的硬件资源模拟,试图打造一种可以在多种设备上运行的便携性编程环境。 与主流的重型操作系统和复杂…

【优选算法】(第四十二篇)

目录 最⼩基因变化(medium) 题目解析 讲解算法原理 编写代码 单词接⻰(hard) 题目解析 讲解算法原理 编写代码 最⼩基因变化(medium) 题目解析 1.题目链接:. - 力扣(LeetCo…

【代码随想录Day43】动态规划Part11

1143.最长公共子序列 题目链接/文章讲解:代码随想录 视频讲解:动态规划子序列问题经典题目 | LeetCode:1143.最长公共子序列_哔哩哔哩_bilibili class Solution {public int longestCommonSubsequence(String text1, String text2) {// 将输…

wireshark抓包

网络抓包工具Wireshark下载安装&使用详细教程-CSDN博客 下载地址:Wireshark Downloadhttps://www.wireshark.org/download.html modbus tcp 关于wireshark无法分析出modbusTCP报文的事情_wireshark 协议一列怎么没有modbus tcp-CSDN博客 使用Wireshark过滤…

4、Spring Boot 3.x集成MQTT(EMQX)主题动态订阅

一、前言 本篇主要是围绕着MQTT这个点,在生产环境中可能存储某些主题随时订阅和取消的逻辑,因为自己本身项目的需要所以顺便把这部分补充一下二、调整MQTT配置 1、调整 MqttConfig.java 在 MqttConfig.java 中新增两个方法/*** 添加订阅主题的方法** …

【动手学深度学习】6.2 图像卷积(个人向笔记)

1. 互相关运算 严格来说,卷积层是一个错误的叫法,因为它本质上是互相关运算而不是卷积运算。我们暂时忽略通道看看二维图像数据和隐藏表示。那么输出大小可以表示为 我们自己实现一个二维互相关运算 2. 卷积层 卷积层中有两个参数:卷积核权…

鸿蒙OS投票机制

(基于openharmony5.0) 投票机制 param get | grep ohos.boot.time 图 投票机制参数图 只有当所有的投票完成,开机动画才会退出,整理需要投票的系统应用(三方应用不参与投票)如下图所示: 以进程foundation为例&…

PRT一键转STL/OBJ,在线预览更直观

随着3D打印技术的普及和设计软件的多样化,不同3D模型格式之间的转换需求也日益增长。PRT作为一种常见的三维设计文件格式,在工程设计领域应用广泛。然而,PRT格式并不被所有3D软件和3D打印机所支持。 为什么选择我们的PRT转换器? …

快速理解http的get和post

在网络通信中,HTTP 协议扮演着非常重要的角色,而不同的 HTTP 方法决定了客户端与服务器之间的交互方式。 这里讲一下最常用的两种方法——GET 和 POST。 一、GET 方法 GET 方法用于从服务器获取资源。 这就像去图书馆借书——你向图书馆请求一本特定的…

光路科技TSN交换机和电力专用交换机即将亮相第31届中国国际电力设备及技术展览会

在全球能源领域正经历深刻转型之际,可再生能源技术的飞跃进步正为电力行业的未来开辟新径。太阳能、风能等绿色能源,凭借其无可比拟的优势,正稳步取代化石燃料,成为电力行业的主流趋势。多国政府积极响应,出台多项政策…

Vue3获取ref元素的几种方式

静态绑定 获取单个 dom 元素 v-for 中使用 需要注意的是,访问的时候,要确保 ref 引用值已经成功绑定上元素,我们可以使用以下几种方式确保获取

倒计时 2 天,GOSIM CHINA 2024 全日程重磅发布(附参会指南)!

伴随着全球开源技术的快速发展,开源已成为驱动技术创新与协作的重要力量。作为开源领域的年度盛会,GOSIM 大会承载这一背景下的使命,已连续两年聚焦全球前沿技术的突破与应用,推动开源技术在更多场景中的创新实践——今年&#xf…