Sentinel 流控注解使用

大概原理:通过反射解析注解 @SentinelResource信息完成调用,处理方法,类似AOP编程

处理方法的返回类型要保持一致,参数和顺序保持一致, 可以在参数列表最后加

com.alibaba.csp.sentinel.slots.block.BlockException;

java 复制代码
    /**
     * 如果不在同类,需要指明类名和方法名并且方法必须是静态方法
     */
    @GetMapping("/add2")
    @SentinelResource(value = "add", blockHandlerClass = {FlowContrlHandler.class}, blockHandler = "flow")
    public String add2() {
        System.out.println("下单成功!开始远程调用库存服务");
        return stockServiceFeign.reduct();
    }

    /**
     * 如果在同类,只需要指明方法名
     */
    @GetMapping("/flow")
    @SentinelResource(value = "flow", blockHandler = "flowControlHandler")
    public String flow() {
        return "正常访问";
    }
    
    public String flowControlHandler(BlockException e) {
        return "Sentinel: 请求频繁!请稍后再试!";
    }
java 复制代码
package com.ldj.cloud.order.handler;

import com.alibaba.csp.sentinel.slots.block.BlockException;

/**
 * User: ldj
 * Date: 2024/4/18
 * Time: 23:51
 * Description: No Description
 */
public class FlowContrlHandler {

    public static String flow(BlockException e) {
        return "Sentinel_Static: 请求频繁!请稍后再试!";
    }
}
相关推荐
NE_STOP5 分钟前
Redis--SDS字符串与集合的底层实现原理
java
直奔標竿9 分钟前
Java开发者AI转型第二十二课!Spring AI 个人知识库实战(一)——架构搭建与核心契约落地
java·人工智能·后端·spring·架构
身如柳絮随风扬11 分钟前
深入理解Java IO与NIO的区别:从BIO到NIO的演进
java·nio
A-Jie-Y34 分钟前
JAVA设计模式-抽象工厂模式
java·设计模式
@insist1231 小时前
信息安全工程师-密码学专题(下):构建可信网络空间的核心机制
java·大数据·密码学·软考·信息安全工程师·软件水平考试
摇滚侠1 小时前
Java 零基础全套视频教程,面向对象(高级),笔记 105-120
java·开发语言·笔记
叶落阁主1 小时前
Spring Boot 4 实战:Jackson 2.x 升级到 3.x 踩坑全记录
java·后端·架构
布吉岛的石头1 小时前
Java 中高级面试:JVM 内存模型 + GC 算法高频题总结
java·jvm·面试
2301_792674861 小时前
java学习(day32)
java
摇滚侠1 小时前
Oracle19c 导出 Oracle11g 导入,Oracle19c 导出导入,Oracle11g 导出导入
java·数据库·oracle