业务高峰期时,您可以通过服务降级功能,对部分的服务消费者进行降级操作,让不重要的业务方不进行真实地调用,直接返回降级的结果,将宝贵的下游服务提供者资源保留给重要的业务调用方使用,从而提升整体服务的稳定性。本文介绍如何创建并配置服务降级规则。
背景信息
已有的Sentinel、Hystrix等开源的熔断降级,主要针对不稳定的弱依赖服务调用进行熔断降级,暂时切断不稳定调用,避免局部不稳定因素导致整体的雪崩。熔断降级作为保护自身的手段,通常配置在服务消费端。
服务降级功能既支持在服务调用报错时候进行降级,也支持在服务调用正常时开启。这样可以保护服务提供者,将有限的资源更多地分配给关键的服务消费者。
下文以一个示例介绍Spring Cloud服务降级的使用场景。
- 未配置服务降级
Consumer 1、Consumer 2和Consumer 3默认调用ProductService中productservice服务的所有Path(/getIp、/product/{id}和/products)。
未配置服务降级规则的调用关系如下图所示。
- 配置服务降级
您可以在Consumer 1调用ProductService中productservice服务的/getIp路径时进行降级。
配置Consumer 1时,降级策略选择返回自定义JSON数据,执行策略选择所有请求生效。表示当Consumer 1调用productservice的/getIp时,不需要真实的调用ProductService,而是会主动根据降级规则进行本地服务降级。
配置完服务降级规则的调用关系如下图所示。
创建服务降级规则
- 登录EDAS控制台。
- 在左侧导航栏,选择 。
- 在Spring Cloud左侧导航栏,单击服务降级。
- 在服务降级页面,选择地域和微服务空间,然后单击创建降级规则。
- 在创建降级规则面板设置参数,然后单击确定。
创建服务降级规则参数说明如下。
配置项 描述 微服务空间 选择应用的地域和所属微服务空间。 规则名称 输入服务降级规则名称,支持大小写字母、数字、下划线(_)和短划线(-),长度不超过64个字符。 描述 输入服务降级规则描述。 服务提供者应用 选择提供服务的应用。 降级应用 选择被调用的降级服务应用。 服务降级规则列表 单击添加服务添加。 框架类型 选择Spring Cloud类型框架。 服务路径 选择服务应用和Path。 请求方法 选择应用的请求方式。 执行策略 选择服务降级的执行策略,包括所有请求生效和请求异常生效,请根据实际需求进行选择。 降级策略 选择服务降级的具体策略,包含返回Null值、返回Exception异常、返回自定义JSON数据和自定义回调,请根据实际需求选择。 默认状态 规则的启用开关。 - 打开:创建后即启用,默认打开。
- 关闭:创建后不启用。如果需要启用,请在服务降级页面规则的操作列,单击开启。