15.@SentinelResource定义资源

该博客介绍了如何使用Sentinel进行资源保护和全局降级处理。通过`@SentinelResource`注解标记服务消费者模块的方法,并配置全局fallback类以统一返回错误信息。在Sentinel控制台设置流控规则后,当访问触发流控时,系统将自动调用预定义的fallback策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Sentinel 提供了 @SentinelResource 注解用于定义受保护资源,默认对所有Controller的请求处理Handler都拦截为需要保护的资源,只需要配置限流等规则即可。并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。

其使用非常简单,参考官方文档即可正确使用@SentinelResource,参考官方文档资料如下:
在这里插入图片描述
在这里插入图片描述

官方文档:https://github.com/alibaba/Sentinel/wiki/%E6%B3%A8%E8%A7%A3%E6%94%AF%E6%8C%81

实现

1.新建GlobalFallback.java 作为全局fallback处理类,并统一返回JSON fallback信息

package com.vincent.controller;

import java.util.HashMap;
import java.util.Map;

public class GlobalFallback {
    public static Object defaultFallback(Throwable e){
        Map<String,Object> rst = new HashMap<>();
        rst.put("exception",e.getClass());
        rst.put("timestamp",System.currentTimeMillis());
        return rst;
    }
}

2.service-consumer模块使用@SentinelResource 标注方法

 @GetMapping("/info")
 @SentinelResource(value = "info",fallbackClass = GlobalFallback.class,defaultFallback = "defaultFallback")
 public Object info(){
     return System.currentTimeMillis();
 }

3.Sentinel 控制台配置流控
在这里插入图片描述

4.正常访问http://localhost:8020/consumer/info
在这里插入图片描述
触发流控规则访问
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值