ali sentinel annotation分析

阿里Sentinel基于AOP的注解方式能够简化资源保护的复杂性,避免手动处理block后的逻辑和异常处理。通过blockHandler和fallback方法可以定义异常处理,其中参数比原始函数多一个抛出异常的对象。推荐避免使用defaultFallback,并可以通过blockHandlerClass和fallbackClass将处理逻辑放在独立的静态方法中。

如果不使用annotation,需要自己进行一系列判断,如block后的处理,原始函数调用失败的处理等等,可以参看public class SentinelResourceAspect的public Object invokeResourceWithSentinel方法,而sentinel 基于aspectJ实现的annotation可以简化这些操作,简单总结如下

  1. blockHandler及fallback(exception handler)函数的参数定义都是比原始函数多一个throw
  2. 建议尽量不要使用defaultfall
  3. 可以通过blockHandlerClass及fallbackClass将handler方法与原始函数分离到不同类中,分离模式下方法必须为static,非分离不要求static
  4. 注意如何没有定义blockhandler,那么会使用fallback或者defaultfallback

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40455124

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值