Spring Cloud Alibaba:@SentinelResource注解的使用
文章目录
- 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注解的使用相关推荐
- Spring Cloud Alibaba 微服务生态基础实践,线程池的底层原理
content longtext NOT NULL COMMENT 'content', md5 varchar(32) DEFAULT NULL COMMENT 'md5', gmt_create ...
- Spring Cloud Alibaba基础教程:@SentinelResource注解实现限流控制与熔断降级使用详解
在之前的<使用Sentinel实现接口限流>一文中,我们仅依靠引入Spring Cloud Alibaba对Sentinel的整合封装spring-cloud-starter-alibab ...
- 通知:Spring Cloud Alibaba 仓库迁移
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 关注我,回复口令获取可获取独家整理的学习资料: - 001:领取<Spring Boot基础教程 ...
- 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 排队等 ...
- Spring Cloud Alibaba:Sentinel实现熔断与限流
摘要 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Sentinel 作为其核心组件之一,具有熔断与限流等一系列服务保护功能,本文将对其用法进行详细介绍. Senti ...
- SpringCloud学习笔记(1)- Spring Cloud Alibaba
文章目录 SpringCloud学习笔记(1)- Spring Cloud Alibaba 服务治理 Nacos 服务注册 Nacos 服务发现与调用 Ribbon 负载均衡 Sentinel 服务限 ...
- 【万字长文】Spring Cloud Alibaba 开箱即用!
互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...
- Spring Cloud Alibaba —— Sentinel 详细使用
导航 引言 一.Sentinel的两个基本概念 二.流控规则 2.1 基本选项 2.2 高级选项 三.熔断(降级)规则 四.热点规则 五.授权规则(了解) 六.系统规则(了解) 七.自定义异常返回 八 ...
- 【万字长文】创业公司就应该技术选型 Spring Cloud Alibaba , 开箱即用
互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...
- Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...
最新文章
- 谁是 2021「IT 圈」年度 C 位?快来报名,彰显你的影响力!
- 纯数学教程 Page 325 例LXVIII (13)
- jira以及jira API简单介绍
- 不同系统下的shell的不同_不同论文检测系统有哪些区别?
- 基于用户的协同过滤(余弦相似度)
- 『电子书』分享一波码农必备编程开发类书籍[转]
- 淘宝API开发系列--开篇概述
- HALCON学习之旅(三)
- 微软补丁星期二修复已遭利用的 Defender 0day
- 高大上的集团名字_中国办公家具行业“高大上”的企业文化节 非中泰龙集团莫属!...
- Atitit 我们的devops战略与规划 规范 推荐标准
- DataRow[] /数组转换datatable!
- juel java_Juel基本使用
- 服务器部署Java项目详述
- 页式存储系统的逻辑地址是由页号和页内地址两部分组成的
- CCPROXY漏洞利用
- MS SQL用两个字段中较大的值为条件进行查询
- 2018年北大软微考研复试面试问题精选
- linux下u盘怎么找,redhat怎么找到u盘呢 ?
- 自动驾驶高精地图调研
热门文章
- SAP Batch表MCH1和MCHA的差别?
- CDS – One Concept, Two Flavors
- ALEIDoc EDI(2)--一般流程
- SAP收购Sybase意欲何为
- SAP限定同名程序同时运行数量
- 现金流为王!中小企业如何“疫”境求生?
- c语言找最长串指针改错,全国计算机二级C语言上机 (改错题)【DOC精选】.doc
- python函数与方法表,基于Python 函数和方法的区别说明
- java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...
- python中shutil模块的用法_python中的os,shutil模块的定义以及用法