Sentinel注解方式定义资源

完整目录清单页面(必看)

Sentinel 支持通过 @SentinelResource 注解定义资源并配置 blockHandlerfallback 函数来进行限流之后的处理。

第一步:引入@SentinelResource注解依赖支持

Sentinel 提供了 @SentinelResource 注解用于定义资源,并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。使用 Sentinel Annotation AspectJ Extension 的时候需要引入以下依赖:

<dependency>
	<groupId>com.alibaba.csp</groupId>
	<artifactId>sentinel-annotation-aspectj</artifactId>
	<version>1.8.0</version>
</dependency>

第二步:创建AspectJ 配置类

Spring Cloud Alibaba

若您是通过 Spring Cloud Alibaba 接入的 Sentinel,则无需额外进行配置即可使用 @SentinelResource 注解。

Spring AOP

若您的应用使用了 Spring AOP(无论是 Spring Boot 还是传统 Spring 应用),您需要通过配置的方式将 SentinelResourceAspect 注册为一个 Spring Bean:

@Configuration
public class SentinelAspectConfiguration {

    @Bean
    public SentinelResourceAspect sentinelResourceAspect() {
        return new SentinelResourceAspect();
    }
}

第三步:新建Controller测试方法

/**
 * 注解方式定义资源
 * @SentinelResource  value 资源名称
 * @SentinelResource blockHandler 调用被限流/降级/系统保护的时候调用的方法
 * @return
 */
@SentinelResource(value = "helloWorld3",blockHandler = "blockHandlerForHelloWorld3")
@RequestMapping("helloWorld3")
public String helloWorld3(){
	return "Sentinel 大爷你好!by 注解方式@SentinelResource"+System.currentTimeMillis();
}

/**
 * 原方法调用被限流/降级/系统保护的时候调用
 * @param ex
 * @return
 */
public String blockHandlerForHelloWorld3(BlockException ex) {
	ex.printStackTrace();
	return "系统繁忙,请稍后!";
}

第四步:Sentinel控制台新增流控规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8QwDhYxi-1621838466219)(image-20210524133853325.png)]

第五步:测试

浏览器请求:http://localhost/helloWorld3

正常访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWyoD45B-1621838466225)(image-20210524133940798.png)]

频繁访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4gp9g3HA-1621838466231)(image-20210524133916766.png)]

控制台异常打印:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vcTzG1zQ-1621838466233)(image-20210524134049638.png)]

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值