Sentinel 之@SentinelResource注解

在 Sentinel 中,@SentinelResource 注解用于标记需要被流量控制、熔断降级以及系统保护等功能覆盖的方法或类。这个注解允许开发者自定义资源名称,并且可以配置异常处理逻辑和 fallback 函数。

基本用法:

@Service
public class SomeService {

    @SentinelResource(value = "someMethod")
    public String someMethod() {
        // ...
    }
}
  • value 属性是必须指定的,它代表了资源的名称,在 Sentinel 控制台中配置规则时会使用到此名称。

其他属性:

  1. entryType:资源类型,默认为 EntryType.OUT,表示出站资源。还可以设置为 EntryType.IN 表示入站资源(例如Web请求)。

  2. blockHandlerblockHandlerClass:当触发限流、降级等导致执行体被阻止(blocked)时调用的回调函数名或者包含该回调函数的类名。回调函数的签名应与原方法一致,但需增加一个额外的参数,即 BlockException 类型。

    @SentinelResource(value = "someMethod", blockHandler = "handleBlock")
    public String someMethod() {
        // ...
    }
    
    private String handleBlock(BlockException ex) {
        // ... 处理被限流或降级的情况
    }
    
  3. fallbackfallbackClass:当资源调用失败(如超时、异常等)时的回退逻辑。类似于Hystrix中的Fallback方法。

    @SentinelResource(value = "someMethod", fallback = "fallbackMethod")
    public String someMethod() {
        // ...
    }
    
    private String fallbackMethod(Throwable t) {
        // ... 当原方法调用失败时的处理逻辑
    }
    
  4. defaultFallback:全局默认的回退方法,当未指定具体 fallback 方法时生效。

通过使用 @SentinelResource 注解,Sentinel 能够精准地定位和控制每个业务方法级别的流量,同时也提供了丰富的异常处理和容错机制,增强了系统的稳定性和可靠性。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值