文章目录

  • 1. 作用
  • 2. 第一个例子
  • 3. blockHandler兜底的问题
  • 4. 定义全局兜底方法

1. 作用

@SentinelResource 允许我们对资源进行定义,比较常用的是资源名称、异常处理等设置

2. 第一个例子

这边定义个简单的接口,我们加了 @SentinelResource 注解:将资源名称设置为 LimitTest1,定义了熔断处理的方法 handleException

@RestController
@RequestMapping("/limit")
public class RateLimitController {@SentinelResource(value = "LimitTest1", blockHandler = "handleException")@GetMapping("/test1")public String test1(String name){return "Hello:" + name;}public String handleException(String name, BlockException e){return "异常:name=" + name + "," + e.getClass().getCanonicalName() + "\t 服务不可用";}
}

Sentinel 控制台设置熔断规则,QPS=1


打开浏览器,快速多次访问上面的接口,熔断后输出我们定义的方法:

3. blockHandler兜底的问题

  • 如果系统默认的,没有体现我们自己的业务要求
  • 依照现有条件,我们自定义的兜底方法和业务代码耦合在一起,不直观
  • 每个业务方法都添加一个兜底处理,代码冗余膨胀
  • 没有全局统一的处理方法

4. 定义全局兜底方法

创建 CustomBlockHandler 类,里面有一个静态的 handleException 方法

public class CustomBlockHandler {public static String handleException(BlockException ex){return "全局的,自定义 HandleException";}
}

修改原来的 @SentinelResource,增加设置 blockHandlerClass

    @SentinelResource(value = "LimitTest2", blockHandlerClass = CustomBlockHandler.class, blockHandler = "handleException")@GetMapping("/test2")public String test2(){return "Limit Test2 ";}

此时,再出发熔断就会调用全局的方法

Spring Cloud Alibaba:@SentinelResource注解的使用相关推荐

  1. Spring Cloud Alibaba 微服务生态基础实践,线程池的底层原理

    content longtext NOT NULL COMMENT 'content', md5 varchar(32) DEFAULT NULL COMMENT 'md5', gmt_create ...

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

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

  3. 通知:Spring Cloud Alibaba 仓库迁移

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 关注我,回复口令获取可获取独家整理的学习资料: - 001:领取<Spring Boot基础教程 ...

  4. Spring Cloud Alibaba:Sentinel 流控规则

    文章目录 1. 前言 2. 阈值类型 2.1 QPS 2.2 线程数 3. 流控模式 3.1 直接 3.2 关联 3.3 链路 4. 流控效果 4.1 快速失败 4.2 Warm Up 4.3 排队等 ...

  5. Spring Cloud Alibaba:Sentinel实现熔断与限流

    摘要 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Sentinel 作为其核心组件之一,具有熔断与限流等一系列服务保护功能,本文将对其用法进行详细介绍. Senti ...

  6. SpringCloud学习笔记(1)- Spring Cloud Alibaba

    文章目录 SpringCloud学习笔记(1)- Spring Cloud Alibaba 服务治理 Nacos 服务注册 Nacos 服务发现与调用 Ribbon 负载均衡 Sentinel 服务限 ...

  7. 【万字长文】Spring Cloud Alibaba 开箱即用!

    互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...

  8. Spring Cloud Alibaba —— Sentinel 详细使用

    导航 引言 一.Sentinel的两个基本概念 二.流控规则 2.1 基本选项 2.2 高级选项 三.熔断(降级)规则 四.热点规则 五.授权规则(了解) 六.系统规则(了解) 七.自定义异常返回 八 ...

  9. 【万字长文】创业公司就应该技术选型 Spring Cloud Alibaba , 开箱即用

    互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...

  10. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...

最新文章

  1. 谁是 2021「IT 圈」年度 C 位?快来报名,彰显你的影响力!
  2. 纯数学教程 Page 325 例LXVIII (13)
  3. jira以及jira API简单介绍
  4. 不同系统下的shell的不同_不同论文检测系统有哪些区别?
  5. 基于用户的协同过滤(余弦相似度)
  6. 『电子书』分享一波码农必备编程开发类书籍[转]
  7. 淘宝API开发系列--开篇概述
  8. HALCON学习之旅(三)
  9. 微软补丁星期二修复已遭利用的 Defender 0day
  10. 高大上的集团名字_中国办公家具行业“高大上”的企业文化节 非中泰龙集团莫属!...
  11. Atitit 我们的devops战略与规划 规范 推荐标准
  12. DataRow[] /数组转换datatable!
  13. juel java_Juel基本使用
  14. 服务器部署Java项目详述
  15. 页式存储系统的逻辑地址是由页号和页内地址两部分组成的
  16. CCPROXY漏洞利用
  17. MS SQL用两个字段中较大的值为条件进行查询
  18. 2018年北大软微考研复试面试问题精选
  19. linux下u盘怎么找,redhat怎么找到u盘呢 ?
  20. 自动驾驶高精地图调研

热门文章

  1. SAP Batch表MCH1和MCHA的差别?
  2. CDS – One Concept, Two Flavors
  3. ALEIDoc EDI(2)--一般流程
  4. SAP收购Sybase意欲何为
  5. SAP限定同名程序同时运行数量
  6. 现金流为王!中小企业如何“疫”境求生?
  7. c语言找最长串指针改错,全国计算机二级C语言上机 (改错题)【DOC精选】.doc
  8. python函数与方法表,基于Python 函数和方法的区别说明
  9. java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...
  10. python中shutil模块的用法_python中的os,shutil模块的定义以及用法