@SentinelResource使用

官网@SentinelResource的使用:注解支持 · alibaba/Sentinel Wiki (github.com)

@SentinelResource的介绍

@SentinelResource来源于Alibaba的Sentinel的注解支持,根据Sentinel官方文档的描述,Sentinel可以通过以下方式定义资源:

  • 方式一:主流框架的默认适配
  • 方式二:抛出异常的方式定义资源
  • 方式三:返回布尔值方式定义资源
  • 方式四:注解方式定义资源(@SentinelResource的来源)
  • 方式五:异步调用支持

@SentinelResource的参数

@SentinelResource的参数如下:

  • value:资源名称
  • entryType:entry 类型,可选项(默认为 EntryType.OUT),可选EntryType.OUTEntryType.IN
  • blockHandler/ blockHandlerClass:定位对应处理 BlockException 的函数名称blockHandler 函数访问范围需要是 public,返回类型需要与原方法相匹配,参数类型需要和原方法相匹配并且最后加一个额外的参数,类型为 BlockException
  • fallback / fallbackClass:fallback 函数名称,可选项,用于在抛出异常的时候提供 fallback 处理逻辑。
  • defaultFallback(since 1.6.0):默认的 fallback 函数名称,可选项
  • exceptionsToIgnore(since 1.6.0):用于指定哪些异常被排除掉,不会计入异常统计中,也不会进入 fallback 逻辑中,而是会原样抛出。

官方案例

// 原函数
@SentinelResource(value = "hello", blockHandler = "exceptionHandler", fallback = "helloFallback")
public String hello(long s) {return String.format("Hello at %d", s);
}// Fallback 函数,函数签名与原函数一致或加一个 Throwable 类型的参数.
public String helloFallback(long s) {return String.format("Halooooo %d", s);
}
// Block 异常处理函数,参数最后多一个 BlockException,其余与原函数一致.
public String exceptionHandler(long s, BlockException ex) {// Do some log here.ex.printStackTrace();return "Oops, error occurred at " + s;
}

@SentinelResource使用相关推荐

  1. Spring Cloud Alibaba:@SentinelResource注解的使用

    文章目录 1. 作用 2. 第一个例子 3. blockHandler兜底的问题 4. 定义全局兜底方法 1. 作用 @SentinelResource 允许我们对资源进行定义,比较常用的是资源名称. ...

  2. Spring Cloud Alibaba基础教程:@SentinelResource注解实现限流控制与熔断降级使用详解

    在之前的<使用Sentinel实现接口限流>一文中,我们仅依靠引入Spring Cloud Alibaba对Sentinel的整合封装spring-cloud-starter-alibab ...

  3. 流控组件Sentinel核心注解@SentinelResource中的参数fallback和blockHandler的使用方式

    fallback顾名思义当Java程序运行发生错误时,由该参数定义的方法进行处理 @GetMapping(value = "/consumer/{id}")@SentinelRes ...

  4. 一个注解搞懂 Sentinel,@SentinelResource总结

    @SentinelResource可以说是Sentinel学习的突破口,搞懂了这个注解的应用,基本上就搞清楚了 Sentinel 的大部分应用场景. 一.@SentinelResource 解析 Se ...

  5. @SentinelResource注解实现热点限流

    下图中请求url中param参数为axb,如果QPS超过5,就会限流 一:如下代码 @RestController public class ParamController {@GetMapping( ...

  6. sentinel的@SentinelResource注解使用

    客户自定义限流处理逻辑 创建ExceptionUtil类用于自定义限流处理逻辑 自定义限流处理类: ExceptionUtil 二:新增 @SentinelResource注解 配置 @Sentine ...

  7. slf4j注解log报错_这个注解一次搞定限流与熔断降级:@SentinelResource

    在之前的<使用Sentinel实现接口限流>一文中,我们仅依靠引入Spring Cloud Alibaba对Sentinel的整合封装spring-cloud-starter-alibab ...

  8. SentinelResource注解配置下_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0047

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上面几节,我们把@SentinelResource说的差不多了,但实际上,sentinel也支持代 ...

  9. SentinelResource注解配置上_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0045

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后这里咱们重点说这个@SentinelResource这个注解 上面是流程

最新文章

  1. SpringBoot+mongoDB实现id自增
  2. Java集合:JDK7与JDK8中HashMap的实现
  3. 投入 20 亿,赋能 1 万家,阿里云正式启动云原生合作伙伴计划
  4. QT的QLibrary类的使用
  5. 04 | 基础篇:经常说的 CPU 上下文切换是什么意思?(下)
  6. Android学习网站
  7. 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
  8. 用ibatis.net简单的数据更新
  9. The Cow Lexicon
  10. linux下proc里关于磁盘性能的参数
  11. 起泡排序算法_气泡排序算法
  12. Apache Rewrite 理解
  13. 分享一个查看JSON的程序
  14. verilog实现四位全加器(基于一位全加器)
  15. Oracle数据库的下载地址
  16. glide加载gif图不显示动画_Android使用glide加载gif动画设置播放次数
  17. 窄带Vs宽带 MIMO
  18. java j2ee j2se_Java EE / J2EE与J2SE / JDK版本之间的关联
  19. macbook卡在进度条开不了机_苹果电脑开机一直停留在加载进度条当中是怎么回事...
  20. 自动摘要生成(二):由PageRank转变而来的TextRank算法

热门文章

  1. mysql ERROR 1045 (28000): Access denied for user解决方法
  2. IE无法安装Activex控件
  3. 谈谈你对云计算技术的看法
  4. 自動生成帶文字的圖片
  5. WebDriver介绍
  6. 网站使用微信扫码登录流程
  7. iframe 中 js 的 cookie 读写不到的解决办法
  8. C#的static,interface,virtual,abstract,override的区别用法
  9. PHP中使用RabiitMQ---各项参数的使用方法
  10. PHP的SOAP原理及实现