SentinelResource自定义限流逻辑处理
SentinelResource除了blockHandler可以设置自定义限流处理逻辑方法以外,还提供另外一个属性来设置限流处理逻辑类型blockHandlerClass属性,此属性中设置的方法必需为 static 函数,否则无法解析。
第一步:
/**
* 此类型用来处理限流自定义逻辑
*/
public class CustomerBlockHandler {
public static String handlerException1(BlockException exception) {
return "handlerException1:系统异常,请稍后重试!";
}
public static String handlerException2(BlockException exception) {
return "handlerException2:网络崩溃了,请稍后重试!";
}
}
第二步:
@RestController
public class FlowLimitController {
/**
* 此方法用到了自定义限流处理类型CustomerBlockHandler中的handlerException1方法来处理限流逻辑。
*/
@GetMapping("/bycustomer")
@SentinelResource(value = "bycustomer",
blockHandlerClass = CustomerBlockHandler.class,
blockHandler = "handlerException1")
public String bycustomer(){
return "-----bycustomer";
}
}
第三步:
添加流控规则以后,我们频繁访问http://localhost:8401/bycustomer,就会看见是CustomerBlockHandler类型的handlerException1方法来处理自定义限流逻辑
对应关系图:
标签:
Spring Cloud Alibaba
, 微服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~