业务高峰期时,您可以通过服务降级功能,对部分的服务消费者进行降级操作,让不重要的业务方不进行真实地调用,直接返回降级的结果,将宝贵的下游服务提供者资源保留给重要的业务调用方使用,从而提升整体服务的稳定性。本文介绍如何创建并配置服务降级规则。
背景信息
开源已有的Sentinel、Hystrix等开源的熔断降级,主要是对不稳定的弱依赖服务调用进行熔断降级,暂时切断不稳定调用,避免局部不稳定因素导致整体的雪崩。熔断降级作为保护自身的手段,通常在服务消费端进行配置。
服务降级功能既支持在服务调用报错时候进行降级,同时也支持在服务调用正常时开启,这样可以很好地保护服务提供者,将有限的资源更多地分配给关键的服务消费者。
下面以一个示例介绍Dubbo服务降级的使用场景。
未配置服务降级
Consumer 1、2和3默认会调用CartService中服务的所有请求方式(getProviderIp、viewCart和addItemToCart)。
未配置服务降级规则的调用关系如下图所示。
配置服务降级
可以配置Consumer 1在调用CartService服务的getProviderIp请求方式时进行降级。降级策略选择返回自定义JSON数据,执行策略选择针对所有请求生效。则表示着当Consumer 1需要去调用CartService的getProviderIp时,不需要真实的调用CartService,而是会主动根据降级规则进行本地服务降级。
配置完服务降级规则的调用关系如下图所示。
使用限制
服务降级功能仅支持2.7.7及以上版本的Dubbo应用。
创建服务降级规则
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
- 在左侧导航栏选择 。
- 在服务降级页面单击创建降级规则。
在创建降级规则页面设置服务降级参数,然后单击确定。
服务降级规则参数说明如下。
参数
描述
规则名称
输入服务降级规则名称,支持大小写字母、数字、下划线(_)和短划线(-),长度不超过64个字符。
描述
输入服务降级规则描述。
服务提供者应用
选择提供服务的应用。
降级服务消费者应用
选择被调用的降级服务应用。
服务降级规则列表
单击添加服务降级规则进行添加。
框架类型
选择Dubbo类型框架。
服务路径
选择服务应用和接口。
请求方法
选择应用的请求方式。
生效策略
选择服务降级的生效策略,包括针对所有请求生效和针对异常请求生效,请根据实际需求进行选择。
降级策略
选择服务降级的具体策略,包含返回Null值、返回Exception异常、返回自定义JSON数据和自定义回调,请根据实际需求选择。
说明其中返回自定义回调函数结果中的函数定义在客户端应用中,函数参数列表和返回值需要与原调用函数保持一致,自定义回调方法所属类需具备默认构造函数。
默认状态
规则的启用开关。
打开:创建后即启用,默认打开。
关闭:创建后不启用,如果需要启用,请在服务降级页面规则的操作列单击开启规则。
执行结果
服务降级规则配置完成且开启后,请根据实际业务验证服务降级规则是否生效。
后续步骤
服务降级规则创建完成后,您还可以编辑规则、根据规则的不同状态关闭规则或开启规则。当不再需要服务降级时,删除规则。
- 本页导读 (1)