服务降级:保障系统可用性的利器
服务降级是指在系统资源不足或出现故障时,通过屏蔽一些故障接口、控制客户的访问频率等方式,保证系统的可用性。
- 降级条件
1.1 热点服务响应异常 当系统中某个热点服务或高频接口响应时间变慢或发生超时异常时,大量客户请求会积压,导致系统负载过重,影响其他正常服务的运行。为应对这种情况,运维人员可以人工触发服务降级,或者系统自动触发服务降级,如限制用户访问频率和并发访问量,降低服务质量等,以减轻或屏蔽慢服务对系统的影响。
1.2 服务故障不可用 系统中的下游服务,如'dsdubbo'、'wtdubbo'等Dubbo服务提供者,如果它们对外提供的接口出现故障,或者webtrade-service本身提供的接口出现故障,会导致某些服务暂时不可用。此时运维人员可以人工触发服务降级,或者系统自动触发服务降级,快速熔断或降低服务质量等,以让系统正常运行,保证核心服务的可用性不受影响。
- 降级方式
2.1 人工触发 在系统超载、系统故障时,运维人员需手动执行服务降级脚本,设置服务降级策略,系统通过对URL层或Dubbo层的接口进行限流、熔断等操作,触发整体业务的服务降级。 服务降级脚本依据业务场景分类构建,每种业务都提供开启\关停两种脚本:
业务场景 用户登录 App首页 交易记录查询 定投协议查询 钱袋子充值 钱袋子取现 基金认申购 基金赎回 投顾转入 投顾赎回 更多业务场景待后续梳理.........
各个业务场景需要梳理内容: 1)、涉及前后端接口 2)、业务影响 3)、对客提示 人工触发服务降级业务流程: 1)监测系统负载情况,判断是否需要触发服务降级 2)判断服务降级策略,选用降级需要降级场景 3)执行服务降级策略脚本,开启服务降级策略 4)监测服务降级效果 5)恢复服务降级服务
2.2 自动触发 服务指标项 使用场景 每秒请求数 指单位时间内客户对系统的访问量,通常以每秒请求数(QPS)来衡量,高访问速率可能会对系统造成负载压力。 使用如高频服务场景 如App首页-账户简报等高频模块,QPS达到10000后,可能导致系统压力剧增,APP整体查询变慢 慢请求比例 指请求响应时间超出预设阈值的请求所占比例,通常以百分比来表示,高慢请求比例可能意味着系统存在性能瓶颈或资源短缺等问题。 使用如高频服务场景 如交易记录查询等高频服务,服务响应速度过慢(如响应时间超过10s),可能导致大量查询请求堆积,拖垮系统性能 系统异常数 指系统在某个时间段内发生的异常事件数量,异常事件可能包括系统崩溃、服务不可用等,高异常数可能意味着系统存在严重的问题。 使用在未经验证或较易出错的场景
系统异常比例 指异常事件占总请求量的比例,通常以百分比来表示。高异常比例可能意味着系统存在问题,包括系统崩溃、服务不可用等情况。 使用在未经验证或较易出错的场景
预设监控指标项的阈值,一旦某项服务指标项超过阈值,则自动触发服务降级策略。内容:
服务降级是一种保证系统可用性的重要手段。在系统资源不足或出现故障时,通过屏蔽一些故障接口、控制客户的访问频率等方式,可以减轻或屏蔽慢服务对系统的影响。服务降级可以通过人工触发或自动触发的方式实现。
在人工触发服务降级时,运维人员需要手动执行服务降级脚本,设置服务降级策略。服务降级脚本需要根据业务场景分类构建,包括涉及前后端接口、业务影响、对客提示等内容。人工触发服务降级的流程包括监测系统负载情况、判断服务降级策略、执行服务降级策略脚本、监测服务降级效果和恢复服务降级服务等步骤。
自动触发服务降级则需要预设监控指标项的阈值,一旦某项服务指标项超过阈值,则自动触发服务降级策略。常用的服务指标项包括每秒请求数、慢请求比例、系统异常数和系统异常比例等。自动触发服务降级可以应用在高频服务场景和未经验证或较易出错的场景中。
服务降级的优势与劣势
服务降级可以有效保证系统的可用性,在系统出现故障或资源不足的情况下,通过降级策略,可以将影响范围缩小,避免系统崩溃,保证核心服务的正常运行。
但服务降级也存在一定的劣势,例如:
- 用户体验下降: 服务降级可能导致部分功能不可用,影响用户体验。
- 业务损失: 服务降级可能会导致部分业务无法正常进行,造成业务损失。
服务降级的实现方式
服务降级可以通过多种方式实现,常用的方式包括:
- 限流: 控制用户访问频率,避免过多的请求涌入系统。
- 熔断: 当服务出现故障时,快速切断对该服务的调用,防止故障扩散。
- 降级: 将服务降级到最基本的功能,保证核心功能正常运行。
具体的实现方式需要根据业务场景和系统特点选择。
服务降级的监控和调整
为了保证服务降级策略的有效性,需要对服务降级进行监控和调整,主要包括:
- 监测服务降级效果: 定期监测服务降级策略的效果,评估降级策略是否达到了预期目标。
- 调整服务降级策略: 根据实际情况,对服务降级策略进行调整,优化服务降级方案。
服务降级与容错机制的关系
服务降级和容错机制都是保证系统可用性的重要手段,但两者侧重点有所不同。
- 服务降级: 主要关注保证系统的可用性,通过降级策略,即使系统出现故障,也能保证核心服务正常运行。
- 容错机制: 主要关注保证系统的正确性,通过容错机制,即使系统出现错误,也能保证系统正常运行。
总而言之,服务降级是一种重要的容错机制,它可以在系统故障或异常情况下保证系统的正常运行,为用户提供稳定的服务。在实际应用中,需要根据具体情况选择合适的服务降级策略,并进行监控和调整,保证服务降级的有效性和可靠性。
原文地址: http://www.cveoy.top/t/topic/lPEm 著作权归作者所有。请勿转载和采集!