深度解析微服务高并发实现开关降级 :扩展Sentinel实现开关降级

本文介绍了如何扩展Sentinel以实现开关降级功能。通过自定义ProcessorSlot,定义开关降级规则类并实现Checker,以及创建SwitchRuleManager和SwitchRuleChecker,实现了无需注解的开关控制。这种方式允许灵活配置开关控制的资源,支持全量、指定资源或排除资源的控制策略。
摘要由CSDN通过智能技术生成

扩展Sentinel实现开关降级
Sentinel实现了插件功能,支持将自定义处理器插槽(ProcessorSlot)通过SPI注册到ProcessorSlotChain中,或者通过自实现SlotChainBuilder构建ProcessorSlotChain,将自定义处理器插槽注册到ProcessorSlotChain中。因此,我们可以通过自定义ProcessorSlot为Sentinel添加开关降级功能。

与限流、熔断降级等流量控制的实现一样,首先定义开关降级规则类,实现loadRulesAPI;然后提供一个Checker,由Checker判断开关是否打开,是否需要拒绝当前请求;最后自定义ProcessorSlot与SlotChainBuilder,实现拦截请求的功能。
在这里插入图片描述与使用AOP实现开关降级有所不同,扩展Sentinel实现开关降级不需要在接口方法或类上添加注解,可以全部通过配置规则实现,这也是为什么选择扩展Sentinel实现开关降级功能的原因。

一个开关通常会控制很多接口,所以一个开关对应一个开关降级规则,一个开关降级规则可配置多个资源。开关降级规则类SwitchRule的代码如下。
在这里插入图片描述
SwitchRule类字段说明如下。

• status:开关状态,取值为open或close。

• resources:开关控制的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值